// Code generated by 'simdgen -o godefs -goroot $GOROOT -arch arm64 -arm64Path $ARM64_ISA_PATH go_arm64.yaml types.yaml categories.yaml'; DO NOT EDIT. package arm64 import ( "cmd/compile/internal/ssa" "cmd/compile/internal/ssa/ssaop" "cmd/compile/internal/ssagen" "cmd/internal/obj" "cmd/internal/obj/arm64" ) func ssaGenSIMDValue(s *ssagen.State, v *ssa.Value) bool { var p *obj.Prog switch v.Op { case ssaop.OpARM64VABS16B, ssaop.OpARM64VCLS16B, ssaop.OpARM64VCLZ16B, ssaop.OpARM64VNEG16B, ssaop.OpARM64VNOT16B, ssaop.OpARM64VCNT16B: p = simdV11(s, v, arm64.ARNG_16B) case ssaop.OpARM64VFABS2D, ssaop.OpARM64VABS2D, ssaop.OpARM64VFRINTP2D, ssaop.OpARM64VSCVTF2D, ssaop.OpARM64VUCVTF2D, ssaop.OpARM64VFCVTZS2D, ssaop.OpARM64VFCVTZU2D, ssaop.OpARM64VFRINTM2D, ssaop.OpARM64VFNEG2D, ssaop.OpARM64VNEG2D, ssaop.OpARM64VFRINTN2D, ssaop.OpARM64VFSQRT2D, ssaop.OpARM64VFRINTZ2D: p = simdV11(s, v, arm64.ARNG_2D) case ssaop.OpARM64VFABS4S, ssaop.OpARM64VABS4S, ssaop.OpARM64VFRINTP4S, ssaop.OpARM64VSCVTF4S, ssaop.OpARM64VUCVTF4S, ssaop.OpARM64VFCVTZS4S, ssaop.OpARM64VFCVTZU4S, ssaop.OpARM64VFRINTM4S, ssaop.OpARM64VCLS4S, ssaop.OpARM64VCLZ4S, ssaop.OpARM64VFNEG4S, ssaop.OpARM64VNEG4S, ssaop.OpARM64VFRINTN4S, ssaop.OpARM64VFSQRT4S, ssaop.OpARM64VFRINTZ4S: p = simdV11(s, v, arm64.ARNG_4S) case ssaop.OpARM64VABS8H, ssaop.OpARM64VCLS8H, ssaop.OpARM64VCLZ8H, ssaop.OpARM64VNEG8H: p = simdV11(s, v, arm64.ARNG_8H) case ssaop.OpARM64VSHL16B, ssaop.OpARM64VSSHR16B, ssaop.OpARM64VUSHR16B, ssaop.OpARM64VSQSHL16Bconst, ssaop.OpARM64VUQSHL16Bconst: p = simdV11Imm(s, v, arm64.ARNG_16B) case ssaop.OpARM64VSHL2D, ssaop.OpARM64VSSHR2D, ssaop.OpARM64VUSHR2D, ssaop.OpARM64VSQSHL2Dconst, ssaop.OpARM64VUQSHL2Dconst: p = simdV11Imm(s, v, arm64.ARNG_2D) case ssaop.OpARM64VSHL4S, ssaop.OpARM64VSSHR4S, ssaop.OpARM64VUSHR4S, ssaop.OpARM64VSQSHL4Sconst, ssaop.OpARM64VUQSHL4Sconst: p = simdV11Imm(s, v, arm64.ARNG_4S) case ssaop.OpARM64VSHL8H, ssaop.OpARM64VSSHR8H, ssaop.OpARM64VUSHR8H, ssaop.OpARM64VSQSHL8Hconst, ssaop.OpARM64VUQSHL8Hconst: p = simdV11Imm(s, v, arm64.ARNG_8H) case ssaop.OpARM64VDUPBbcast: p = simdV11ImmIn1(s, v, arm64.ARNG_B) case ssaop.OpARM64VDUPDbcast: p = simdV11ImmIn1(s, v, arm64.ARNG_D) case ssaop.OpARM64VDUPHbcast: p = simdV11ImmIn1(s, v, arm64.ARNG_H) case ssaop.OpARM64VDUPSbcast: p = simdV11ImmIn1(s, v, arm64.ARNG_S) case ssaop.OpARM64VSMAXV16B, ssaop.OpARM64VUMAXV16B, ssaop.OpARM64VSMINV16B, ssaop.OpARM64VUMINV16B, ssaop.OpARM64VADDV16B: p = simdV11Scalar(s, v, arm64.ARNG_16B) case ssaop.OpARM64VFMAXV4S, ssaop.OpARM64VSMAXV4S, ssaop.OpARM64VUMAXV4S, ssaop.OpARM64VFMINV4S, ssaop.OpARM64VSMINV4S, ssaop.OpARM64VUMINV4S, ssaop.OpARM64VADDV4S: p = simdV11Scalar(s, v, arm64.ARNG_4S) case ssaop.OpARM64VSMAXV8H, ssaop.OpARM64VUMAXV8H, ssaop.OpARM64VSMINV8H, ssaop.OpARM64VUMINV8H, ssaop.OpARM64VADDV8H: p = simdV11Scalar(s, v, arm64.ARNG_8H) case ssaop.OpARM64VDUPDextr: p = simdV11ScalarImmIn1(s, v, arm64.ARNG_D) case ssaop.OpARM64VDUPSextr: p = simdV11ScalarImmIn1(s, v, arm64.ARNG_S) case ssaop.OpARM64VADD16B, ssaop.OpARM64VSQADD16B, ssaop.OpARM64VUQADD16B, ssaop.OpARM64VAND16B, ssaop.OpARM64VBIC16B, ssaop.OpARM64VSRHADD16B, ssaop.OpARM64VURHADD16B, ssaop.OpARM64VUZP116B, ssaop.OpARM64VUZP216B, ssaop.OpARM64VCMEQ16B, ssaop.OpARM64VCMGT16B, ssaop.OpARM64VCMHI16B, ssaop.OpARM64VCMGE16B, ssaop.OpARM64VCMHS16B, ssaop.OpARM64VTRN116B, ssaop.OpARM64VZIP216B, ssaop.OpARM64VZIP116B, ssaop.OpARM64VTRN216B, ssaop.OpARM64VSMAX16B, ssaop.OpARM64VUMAX16B, ssaop.OpARM64VSMIN16B, ssaop.OpARM64VUMIN16B, ssaop.OpARM64VMUL16B, ssaop.OpARM64VORR16B, ssaop.OpARM64VORN16B, ssaop.OpARM64VSSHL16B, ssaop.OpARM64VUSHL16B, ssaop.OpARM64VSQSHL16B, ssaop.OpARM64VUQSHL16B, ssaop.OpARM64VSUB16B, ssaop.OpARM64VSQSUB16B, ssaop.OpARM64VUQSUB16B, ssaop.OpARM64VCMTST16B, ssaop.OpARM64VEOR16B: p = simdV21(s, v, arm64.ARNG_16B) case ssaop.OpARM64VFADD2D, ssaop.OpARM64VADD2D, ssaop.OpARM64VSQADD2D, ssaop.OpARM64VUQADD2D, ssaop.OpARM64VFADDP2D, ssaop.OpARM64VADDP2D, ssaop.OpARM64VUZP12D, ssaop.OpARM64VUZP22D, ssaop.OpARM64VFDIV2D, ssaop.OpARM64VFCMEQ2D, ssaop.OpARM64VCMEQ2D, ssaop.OpARM64VFCMGT2D, ssaop.OpARM64VCMGT2D, ssaop.OpARM64VCMHI2D, ssaop.OpARM64VFCMGE2D, ssaop.OpARM64VCMGE2D, ssaop.OpARM64VCMHS2D, ssaop.OpARM64VTRN12D, ssaop.OpARM64VZIP22D, ssaop.OpARM64VZIP12D, ssaop.OpARM64VTRN22D, ssaop.OpARM64VFMAX2D, ssaop.OpARM64VFMIN2D, ssaop.OpARM64VFMUL2D, ssaop.OpARM64VSSHL2D, ssaop.OpARM64VUSHL2D, ssaop.OpARM64VSQSHL2D, ssaop.OpARM64VUQSHL2D, ssaop.OpARM64VFSUB2D, ssaop.OpARM64VSUB2D, ssaop.OpARM64VSQSUB2D, ssaop.OpARM64VUQSUB2D, ssaop.OpARM64VCMTST2D: p = simdV21(s, v, arm64.ARNG_2D) case ssaop.OpARM64VFADD4S, ssaop.OpARM64VADD4S, ssaop.OpARM64VSQADD4S, ssaop.OpARM64VUQADD4S, ssaop.OpARM64VSRHADD4S, ssaop.OpARM64VURHADD4S, ssaop.OpARM64VFADDP4S, ssaop.OpARM64VADDP4S, ssaop.OpARM64VUZP14S, ssaop.OpARM64VUZP24S, ssaop.OpARM64VFDIV4S, ssaop.OpARM64VFCMEQ4S, ssaop.OpARM64VCMEQ4S, ssaop.OpARM64VFCMGT4S, ssaop.OpARM64VCMGT4S, ssaop.OpARM64VCMHI4S, ssaop.OpARM64VFCMGE4S, ssaop.OpARM64VCMGE4S, ssaop.OpARM64VCMHS4S, ssaop.OpARM64VTRN14S, ssaop.OpARM64VZIP24S, ssaop.OpARM64VZIP14S, ssaop.OpARM64VTRN24S, ssaop.OpARM64VFMAX4S, ssaop.OpARM64VSMAX4S, ssaop.OpARM64VUMAX4S, ssaop.OpARM64VFMIN4S, ssaop.OpARM64VSMIN4S, ssaop.OpARM64VUMIN4S, ssaop.OpARM64VFMUL4S, ssaop.OpARM64VMUL4S, ssaop.OpARM64VSSHL4S, ssaop.OpARM64VUSHL4S, ssaop.OpARM64VSQSHL4S, ssaop.OpARM64VUQSHL4S, ssaop.OpARM64VFSUB4S, ssaop.OpARM64VSUB4S, ssaop.OpARM64VSQSUB4S, ssaop.OpARM64VUQSUB4S, ssaop.OpARM64VCMTST4S: p = simdV21(s, v, arm64.ARNG_4S) case ssaop.OpARM64VADD8H, ssaop.OpARM64VSQADD8H, ssaop.OpARM64VUQADD8H, ssaop.OpARM64VSRHADD8H, ssaop.OpARM64VURHADD8H, ssaop.OpARM64VADDP8H, ssaop.OpARM64VUZP18H, ssaop.OpARM64VUZP28H, ssaop.OpARM64VCMEQ8H, ssaop.OpARM64VCMGT8H, ssaop.OpARM64VCMHI8H, ssaop.OpARM64VCMGE8H, ssaop.OpARM64VCMHS8H, ssaop.OpARM64VTRN18H, ssaop.OpARM64VZIP28H, ssaop.OpARM64VZIP18H, ssaop.OpARM64VTRN28H, ssaop.OpARM64VSMAX8H, ssaop.OpARM64VUMAX8H, ssaop.OpARM64VSMIN8H, ssaop.OpARM64VUMIN8H, ssaop.OpARM64VMUL8H, ssaop.OpARM64VSSHL8H, ssaop.OpARM64VUSHL8H, ssaop.OpARM64VSQSHL8H, ssaop.OpARM64VUQSHL8H, ssaop.OpARM64VSUB8H, ssaop.OpARM64VSQSUB8H, ssaop.OpARM64VUQSUB8H, ssaop.OpARM64VCMTST8H: p = simdV21(s, v, arm64.ARNG_8H) case ssaop.OpARM64VEXT16B: p = simdV21Imm(s, v, arm64.ARNG_16B) case ssaop.OpARM64VMLA16B, ssaop.OpARM64VBIF16B, ssaop.OpARM64VBIT16B: p = simdV31ResultInArg0(s, v, arm64.ARNG_16B) case ssaop.OpARM64VFMLA2D: p = simdV31ResultInArg0(s, v, arm64.ARNG_2D) case ssaop.OpARM64VFMLA4S, ssaop.OpARM64VMLA4S: p = simdV31ResultInArg0(s, v, arm64.ARNG_4S) case ssaop.OpARM64VMLA8H: p = simdV31ResultInArg0(s, v, arm64.ARNG_8H) case ssaop.OpARM64VMOVBextr: p = simdVgpImmIn1(s, v, arm64.ARNG_B) case ssaop.OpARM64VMOVDextr: p = simdVgpImmIn1(s, v, arm64.ARNG_D) case ssaop.OpARM64VMOVHextr: p = simdVgpImmIn1(s, v, arm64.ARNG_H) case ssaop.OpARM64VMOVSextr: p = simdVgpImmIn1(s, v, arm64.ARNG_S) case ssaop.OpARM64VMOVBins: p = simdVgpvResultInArg0ImmOutIn0(s, v, arm64.ARNG_B) case ssaop.OpARM64VMOVDins: p = simdVgpvResultInArg0ImmOutIn0(s, v, arm64.ARNG_D) case ssaop.OpARM64VMOVHins: p = simdVgpvResultInArg0ImmOutIn0(s, v, arm64.ARNG_H) case ssaop.OpARM64VMOVSins: p = simdVgpvResultInArg0ImmOutIn0(s, v, arm64.ARNG_S) case ssaop.OpARM64VMOVDins0: p = simdVfpvResultInArg0ImmOutIn1(s, v, arm64.ARNG_D) case ssaop.OpARM64VMOVSins0: p = simdVfpvResultInArg0ImmOutIn1(s, v, arm64.ARNG_S) case ssaop.OpARM64VSXTL16B, ssaop.OpARM64VUXTL16B: p = simdV11Long(s, v, arm64.ARNG_16B) case ssaop.OpARM64VFCVTL4S, ssaop.OpARM64VSXTL4S, ssaop.OpARM64VUXTL4S: p = simdV11Long(s, v, arm64.ARNG_4S) case ssaop.OpARM64VSXTL8H, ssaop.OpARM64VUXTL8H: p = simdV11Long(s, v, arm64.ARNG_8H) case ssaop.OpARM64VFCVTN2D, ssaop.OpARM64VSQXTN2D, ssaop.OpARM64VSQXTUN2D, ssaop.OpARM64VUQXTN2D, ssaop.OpARM64VXTN2D: p = simdV11Narrow(s, v, arm64.ARNG_2D) case ssaop.OpARM64VSQXTN4S, ssaop.OpARM64VSQXTUN4S, ssaop.OpARM64VUQXTN4S, ssaop.OpARM64VXTN4S: p = simdV11Narrow(s, v, arm64.ARNG_4S) case ssaop.OpARM64VSQXTN8H, ssaop.OpARM64VSQXTUN8H, ssaop.OpARM64VUQXTN8H, ssaop.OpARM64VXTN8H: p = simdV11Narrow(s, v, arm64.ARNG_8H) case ssaop.OpARM64VSHRN2D: p = simdV11ImmNarrow(s, v, arm64.ARNG_2D) case ssaop.OpARM64VSHRN4S: p = simdV11ImmNarrow(s, v, arm64.ARNG_4S) case ssaop.OpARM64VSHRN8H: p = simdV11ImmNarrow(s, v, arm64.ARNG_8H) case ssaop.OpARM64VSSHLL16B, ssaop.OpARM64VUSHLL16B: p = simdV11ImmLong(s, v, arm64.ARNG_16B) case ssaop.OpARM64VSSHLL4S, ssaop.OpARM64VUSHLL4S: p = simdV11ImmLong(s, v, arm64.ARNG_4S) case ssaop.OpARM64VSSHLL8H, ssaop.OpARM64VUSHLL8H: p = simdV11ImmLong(s, v, arm64.ARNG_8H) case ssaop.OpARM64VSMULL16B, ssaop.OpARM64VUMULL16B: p = simdV21Long(s, v, arm64.ARNG_16B) case ssaop.OpARM64VPMULL2D: p = simdV21Long(s, v, arm64.ARNG_2D) case ssaop.OpARM64VSMULL4S, ssaop.OpARM64VUMULL4S: p = simdV21Long(s, v, arm64.ARNG_4S) case ssaop.OpARM64VSMULL8H, ssaop.OpARM64VUMULL8H: p = simdV21Long(s, v, arm64.ARNG_8H) case ssaop.OpARM64VSXTL2_16B, ssaop.OpARM64VUXTL2_16B: p = simdV11Long2(s, v, arm64.ARNG_16B) case ssaop.OpARM64VFCVTL2_4S, ssaop.OpARM64VSXTL2_4S, ssaop.OpARM64VUXTL2_4S: p = simdV11Long2(s, v, arm64.ARNG_4S) case ssaop.OpARM64VSXTL2_8H, ssaop.OpARM64VUXTL2_8H: p = simdV11Long2(s, v, arm64.ARNG_8H) case ssaop.OpARM64VFCVTN2_2D, ssaop.OpARM64VSQXTN2_2D, ssaop.OpARM64VSQXTUN2_2D, ssaop.OpARM64VUQXTN2_2D, ssaop.OpARM64VXTN2_2D: p = simdV21Narrow2(s, v, arm64.ARNG_2D) case ssaop.OpARM64VSQXTN2_4S, ssaop.OpARM64VSQXTUN2_4S, ssaop.OpARM64VUQXTN2_4S, ssaop.OpARM64VXTN2_4S: p = simdV21Narrow2(s, v, arm64.ARNG_4S) case ssaop.OpARM64VSQXTN2_8H, ssaop.OpARM64VSQXTUN2_8H, ssaop.OpARM64VUQXTN2_8H, ssaop.OpARM64VXTN2_8H: p = simdV21Narrow2(s, v, arm64.ARNG_8H) case ssaop.OpARM64VSHRN2_2D: p = simdV21ImmNarrow2(s, v, arm64.ARNG_2D) case ssaop.OpARM64VSHRN2_4S: p = simdV21ImmNarrow2(s, v, arm64.ARNG_4S) case ssaop.OpARM64VSHRN2_8H: p = simdV21ImmNarrow2(s, v, arm64.ARNG_8H) case ssaop.OpARM64VSSHLL2_16B, ssaop.OpARM64VUSHLL2_16B: p = simdV11ImmLong2(s, v, arm64.ARNG_16B) case ssaop.OpARM64VSSHLL2_4S, ssaop.OpARM64VUSHLL2_4S: p = simdV11ImmLong2(s, v, arm64.ARNG_4S) case ssaop.OpARM64VSSHLL2_8H, ssaop.OpARM64VUSHLL2_8H: p = simdV11ImmLong2(s, v, arm64.ARNG_8H) case ssaop.OpARM64VSMULL2_16B, ssaop.OpARM64VUMULL2_16B: p = simdV21Long2(s, v, arm64.ARNG_16B) case ssaop.OpARM64VPMULL2_2D: p = simdV21Long2(s, v, arm64.ARNG_2D) case ssaop.OpARM64VSMULL2_4S, ssaop.OpARM64VUMULL2_4S: p = simdV21Long2(s, v, arm64.ARNG_4S) case ssaop.OpARM64VSMULL2_8H, ssaop.OpARM64VUMULL2_8H: p = simdV21Long2(s, v, arm64.ARNG_8H) case ssaop.OpARM64VTBL16B: p = simdV21List(s, v, arm64.ARNG_16B) case ssaop.OpARM64VTBX16B: p = simdV31ResultInArg0List(s, v, arm64.ARNG_16B) default: // Unknown reg shape return false } // Ensure p is marked as used (may not be used in all generated code paths) _ = p return true }