| // Code generated by 'simdgen -o godefs -goroot $GOROOT -arch sve -arm64Path $ARM64_ISA_PATH go_sve.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 ssaGenSIMDSVEValue(s *ssagen.State, v *ssa.Value) bool { | |
| var p *obj.Prog | |
| switch v.Op { | |
| case ssaop.OpARM64ZABSB, | |
| ssaop.OpARM64ZNEGB: | |
| p = simdZkv(s, v, arm64.ARNG_B) | |
| case ssaop.OpARM64ZFABSD, | |
| ssaop.OpARM64ZABSD, | |
| ssaop.OpARM64ZFRINTPD, | |
| ssaop.OpARM64ZFRINTMD, | |
| ssaop.OpARM64ZFNEGD, | |
| ssaop.OpARM64ZNEGD, | |
| ssaop.OpARM64ZFRINTND, | |
| ssaop.OpARM64ZFSQRTD, | |
| ssaop.OpARM64ZFRINTZD: | |
| p = simdZkv(s, v, arm64.ARNG_D) | |
| case ssaop.OpARM64ZABSH, | |
| ssaop.OpARM64ZNEGH: | |
| p = simdZkv(s, v, arm64.ARNG_H) | |
| case ssaop.OpARM64ZFABSS, | |
| ssaop.OpARM64ZABSS, | |
| ssaop.OpARM64ZFRINTPS, | |
| ssaop.OpARM64ZFCVTZSS, | |
| ssaop.OpARM64ZFRINTMS, | |
| ssaop.OpARM64ZFNEGS, | |
| ssaop.OpARM64ZNEGS, | |
| ssaop.OpARM64ZFRINTNS, | |
| ssaop.OpARM64ZFSQRTS, | |
| ssaop.OpARM64ZFRINTZS: | |
| p = simdZkv(s, v, arm64.ARNG_S) | |
| case ssaop.OpARM64ZADDB, | |
| ssaop.OpARM64ZSQADDB, | |
| ssaop.OpARM64ZUQADDB, | |
| ssaop.OpARM64ZMULB, | |
| ssaop.OpARM64ZSMULHB, | |
| ssaop.OpARM64ZUMULHB, | |
| ssaop.OpARM64ZSUBB, | |
| ssaop.OpARM64ZSQSUBB, | |
| ssaop.OpARM64ZUQSUBB: | |
| p = simdZ21(s, v, arm64.ARNG_B) | |
| case ssaop.OpARM64ZFADDD, | |
| ssaop.OpARM64ZADDD, | |
| ssaop.OpARM64ZSQADDD, | |
| ssaop.OpARM64ZUQADDD, | |
| ssaop.OpARM64ZANDD, | |
| ssaop.OpARM64ZBICD, | |
| ssaop.OpARM64ZFMULD, | |
| ssaop.OpARM64ZMULD, | |
| ssaop.OpARM64ZSMULHD, | |
| ssaop.OpARM64ZUMULHD, | |
| ssaop.OpARM64ZORRD, | |
| ssaop.OpARM64ZFSUBD, | |
| ssaop.OpARM64ZSUBD, | |
| ssaop.OpARM64ZSQSUBD, | |
| ssaop.OpARM64ZUQSUBD, | |
| ssaop.OpARM64ZEORD: | |
| p = simdZ21(s, v, arm64.ARNG_D) | |
| case ssaop.OpARM64ZADDH, | |
| ssaop.OpARM64ZSQADDH, | |
| ssaop.OpARM64ZUQADDH, | |
| ssaop.OpARM64ZMULH, | |
| ssaop.OpARM64ZSMULHH, | |
| ssaop.OpARM64ZUMULHH, | |
| ssaop.OpARM64ZSUBH, | |
| ssaop.OpARM64ZSQSUBH, | |
| ssaop.OpARM64ZUQSUBH: | |
| p = simdZ21(s, v, arm64.ARNG_H) | |
| case ssaop.OpARM64ZFADDS, | |
| ssaop.OpARM64ZADDS, | |
| ssaop.OpARM64ZSQADDS, | |
| ssaop.OpARM64ZUQADDS, | |
| ssaop.OpARM64ZFMULS, | |
| ssaop.OpARM64ZMULS, | |
| ssaop.OpARM64ZSMULHS, | |
| ssaop.OpARM64ZUMULHS, | |
| ssaop.OpARM64ZFSUBS, | |
| ssaop.OpARM64ZSUBS, | |
| ssaop.OpARM64ZSQSUBS, | |
| ssaop.OpARM64ZUQSUBS: | |
| p = simdZ21(s, v, arm64.ARNG_S) | |
| case ssaop.OpARM64ZCMPEQB, | |
| ssaop.OpARM64ZCMPGTB, | |
| ssaop.OpARM64ZCMPHIB, | |
| ssaop.OpARM64ZCMPGEB, | |
| ssaop.OpARM64ZCMPHSB, | |
| ssaop.OpARM64ZCMPNEB: | |
| p = simdZ2kk(s, v, arm64.ARNG_B) | |
| case ssaop.OpARM64ZFCMEQD, | |
| ssaop.OpARM64ZCMPEQD, | |
| ssaop.OpARM64ZFCMGTD, | |
| ssaop.OpARM64ZCMPGTD, | |
| ssaop.OpARM64ZCMPHID, | |
| ssaop.OpARM64ZFCMGED, | |
| ssaop.OpARM64ZCMPGED, | |
| ssaop.OpARM64ZCMPHSD, | |
| ssaop.OpARM64ZFCMNED, | |
| ssaop.OpARM64ZCMPNED: | |
| p = simdZ2kk(s, v, arm64.ARNG_D) | |
| case ssaop.OpARM64ZCMPEQH, | |
| ssaop.OpARM64ZCMPGTH, | |
| ssaop.OpARM64ZCMPHIH, | |
| ssaop.OpARM64ZCMPGEH, | |
| ssaop.OpARM64ZCMPHSH, | |
| ssaop.OpARM64ZCMPNEH: | |
| p = simdZ2kk(s, v, arm64.ARNG_H) | |
| case ssaop.OpARM64ZFCMEQS, | |
| ssaop.OpARM64ZCMPEQS, | |
| ssaop.OpARM64ZFCMGTS, | |
| ssaop.OpARM64ZCMPGTS, | |
| ssaop.OpARM64ZCMPHIS, | |
| ssaop.OpARM64ZFCMGES, | |
| ssaop.OpARM64ZCMPGES, | |
| ssaop.OpARM64ZCMPHSS, | |
| ssaop.OpARM64ZFCMNES, | |
| ssaop.OpARM64ZCMPNES: | |
| p = simdZ2kk(s, v, arm64.ARNG_S) | |
| case ssaop.OpARM64ZADDMergingB, | |
| ssaop.OpARM64ZSQADDMergingB, | |
| ssaop.OpARM64ZUQADDMergingB, | |
| ssaop.OpARM64ZANDMergingB, | |
| ssaop.OpARM64ZBICMergingB, | |
| ssaop.OpARM64ZSMAXB, | |
| ssaop.OpARM64ZSMAXMergingB, | |
| ssaop.OpARM64ZUMAXB, | |
| ssaop.OpARM64ZUMAXMergingB, | |
| ssaop.OpARM64ZSMINB, | |
| ssaop.OpARM64ZSMINMergingB, | |
| ssaop.OpARM64ZUMINB, | |
| ssaop.OpARM64ZUMINMergingB, | |
| ssaop.OpARM64ZMULMergingB, | |
| ssaop.OpARM64ZSMULHMergingB, | |
| ssaop.OpARM64ZUMULHMergingB, | |
| ssaop.OpARM64ZORRMergingB, | |
| ssaop.OpARM64ZSUBMergingB, | |
| ssaop.OpARM64ZSQSUBMergingB, | |
| ssaop.OpARM64ZUQSUBMergingB, | |
| ssaop.OpARM64ZEORMergingB: | |
| p = simdZ2kvPred(s, v, arm64.ARNG_B) | |
| case ssaop.OpARM64ZFADDMergingD, | |
| ssaop.OpARM64ZADDMergingD, | |
| ssaop.OpARM64ZSQADDMergingD, | |
| ssaop.OpARM64ZUQADDMergingD, | |
| ssaop.OpARM64ZANDMergingD, | |
| ssaop.OpARM64ZBICMergingD, | |
| ssaop.OpARM64ZFDIVD, | |
| ssaop.OpARM64ZFDIVMergingD, | |
| ssaop.OpARM64ZSDIVD, | |
| ssaop.OpARM64ZSDIVMergingD, | |
| ssaop.OpARM64ZUDIVD, | |
| ssaop.OpARM64ZUDIVMergingD, | |
| ssaop.OpARM64ZFMAXD, | |
| ssaop.OpARM64ZFMAXMergingD, | |
| ssaop.OpARM64ZSMAXD, | |
| ssaop.OpARM64ZSMAXMergingD, | |
| ssaop.OpARM64ZUMAXD, | |
| ssaop.OpARM64ZUMAXMergingD, | |
| ssaop.OpARM64ZFMIND, | |
| ssaop.OpARM64ZFMINMergingD, | |
| ssaop.OpARM64ZSMIND, | |
| ssaop.OpARM64ZSMINMergingD, | |
| ssaop.OpARM64ZUMIND, | |
| ssaop.OpARM64ZUMINMergingD, | |
| ssaop.OpARM64ZFMULMergingD, | |
| ssaop.OpARM64ZMULMergingD, | |
| ssaop.OpARM64ZSMULHMergingD, | |
| ssaop.OpARM64ZUMULHMergingD, | |
| ssaop.OpARM64ZORRMergingD, | |
| ssaop.OpARM64ZLSLD, | |
| ssaop.OpARM64ZLSLMergingD, | |
| ssaop.OpARM64ZFSUBMergingD, | |
| ssaop.OpARM64ZSUBMergingD, | |
| ssaop.OpARM64ZSQSUBMergingD, | |
| ssaop.OpARM64ZUQSUBMergingD, | |
| ssaop.OpARM64ZEORMergingD: | |
| p = simdZ2kvPred(s, v, arm64.ARNG_D) | |
| case ssaop.OpARM64ZADDMergingH, | |
| ssaop.OpARM64ZSQADDMergingH, | |
| ssaop.OpARM64ZUQADDMergingH, | |
| ssaop.OpARM64ZANDMergingH, | |
| ssaop.OpARM64ZBICMergingH, | |
| ssaop.OpARM64ZSMAXH, | |
| ssaop.OpARM64ZSMAXMergingH, | |
| ssaop.OpARM64ZUMAXH, | |
| ssaop.OpARM64ZUMAXMergingH, | |
| ssaop.OpARM64ZSMINH, | |
| ssaop.OpARM64ZSMINMergingH, | |
| ssaop.OpARM64ZUMINH, | |
| ssaop.OpARM64ZUMINMergingH, | |
| ssaop.OpARM64ZMULMergingH, | |
| ssaop.OpARM64ZSMULHMergingH, | |
| ssaop.OpARM64ZUMULHMergingH, | |
| ssaop.OpARM64ZORRMergingH, | |
| ssaop.OpARM64ZSUBMergingH, | |
| ssaop.OpARM64ZSQSUBMergingH, | |
| ssaop.OpARM64ZUQSUBMergingH, | |
| ssaop.OpARM64ZEORMergingH: | |
| p = simdZ2kvPred(s, v, arm64.ARNG_H) | |
| case ssaop.OpARM64ZFADDMergingS, | |
| ssaop.OpARM64ZADDMergingS, | |
| ssaop.OpARM64ZSQADDMergingS, | |
| ssaop.OpARM64ZUQADDMergingS, | |
| ssaop.OpARM64ZANDMergingS, | |
| ssaop.OpARM64ZBICMergingS, | |
| ssaop.OpARM64ZFDIVS, | |
| ssaop.OpARM64ZFDIVMergingS, | |
| ssaop.OpARM64ZSDIVS, | |
| ssaop.OpARM64ZSDIVMergingS, | |
| ssaop.OpARM64ZUDIVS, | |
| ssaop.OpARM64ZUDIVMergingS, | |
| ssaop.OpARM64ZFMAXS, | |
| ssaop.OpARM64ZFMAXMergingS, | |
| ssaop.OpARM64ZSMAXS, | |
| ssaop.OpARM64ZSMAXMergingS, | |
| ssaop.OpARM64ZUMAXS, | |
| ssaop.OpARM64ZUMAXMergingS, | |
| ssaop.OpARM64ZFMINS, | |
| ssaop.OpARM64ZFMINMergingS, | |
| ssaop.OpARM64ZSMINS, | |
| ssaop.OpARM64ZSMINMergingS, | |
| ssaop.OpARM64ZUMINS, | |
| ssaop.OpARM64ZUMINMergingS, | |
| ssaop.OpARM64ZFMULMergingS, | |
| ssaop.OpARM64ZMULMergingS, | |
| ssaop.OpARM64ZSMULHMergingS, | |
| ssaop.OpARM64ZUMULHMergingS, | |
| ssaop.OpARM64ZORRMergingS, | |
| ssaop.OpARM64ZFSUBMergingS, | |
| ssaop.OpARM64ZSUBMergingS, | |
| ssaop.OpARM64ZSQSUBMergingS, | |
| ssaop.OpARM64ZUQSUBMergingS, | |
| ssaop.OpARM64ZEORMergingS: | |
| p = simdZ2kvPred(s, v, arm64.ARNG_S) | |
| case ssaop.OpARM64ZFMAXVDD, | |
| ssaop.OpARM64ZFADDVDD: | |
| p = simdZkfp(s, v, arm64.ARNG_D) | |
| case ssaop.OpARM64ZFMAXVSS, | |
| ssaop.OpARM64ZFADDVSS: | |
| p = simdZkfp(s, v, arm64.ARNG_S) | |
| case ssaop.OpARM64ZLSLBconst: | |
| p = simdZ11Imm(s, v, arm64.ARNG_B) | |
| case ssaop.OpARM64ZLSLDconst: | |
| p = simdZ11Imm(s, v, arm64.ARNG_D) | |
| case ssaop.OpARM64ZLSLHconst: | |
| p = simdZ11Imm(s, v, arm64.ARNG_H) | |
| case ssaop.OpARM64ZLSLSconst: | |
| p = simdZ11Imm(s, v, arm64.ARNG_S) | |
| case ssaop.OpARM64ZLSLMergingBconst: | |
| p = simdZkvPredImm(s, v, arm64.ARNG_B) | |
| case ssaop.OpARM64ZLSLMergingDconst: | |
| p = simdZkvPredImm(s, v, arm64.ARNG_D) | |
| case ssaop.OpARM64ZLSLMergingHconst: | |
| p = simdZkvPredImm(s, v, arm64.ARNG_H) | |
| case ssaop.OpARM64ZLSLMergingSconst: | |
| p = simdZkvPredImm(s, v, arm64.ARNG_S) | |
| case ssaop.OpARM64ZLSLB: | |
| p = simdZ21Wide(s, v, arm64.ARNG_B) | |
| case ssaop.OpARM64ZLSLH: | |
| p = simdZ21Wide(s, v, arm64.ARNG_H) | |
| case ssaop.OpARM64ZLSLS: | |
| p = simdZ21Wide(s, v, arm64.ARNG_S) | |
| case ssaop.OpARM64ZLSLMergingB: | |
| p = simdZ2kvPredWide(s, v, arm64.ARNG_B) | |
| case ssaop.OpARM64ZLSLMergingH: | |
| p = simdZ2kvPredWide(s, v, arm64.ARNG_H) | |
| case ssaop.OpARM64ZLSLMergingS: | |
| p = simdZ2kvPredWide(s, v, arm64.ARNG_S) | |
| case ssaop.OpARM64ZABSMergingB, | |
| ssaop.OpARM64ZNEGMergingB: | |
| p = simdZ2kvPredResultInArg0(s, v, arm64.ARNG_B) | |
| case ssaop.OpARM64ZFABSMergingD, | |
| ssaop.OpARM64ZABSMergingD, | |
| ssaop.OpARM64ZFRINTPMergingD, | |
| ssaop.OpARM64ZFRINTMMergingD, | |
| ssaop.OpARM64ZFNEGMergingD, | |
| ssaop.OpARM64ZNEGMergingD, | |
| ssaop.OpARM64ZFRINTNMergingD, | |
| ssaop.OpARM64ZFSQRTMergingD, | |
| ssaop.OpARM64ZFRINTZMergingD: | |
| p = simdZ2kvPredResultInArg0(s, v, arm64.ARNG_D) | |
| case ssaop.OpARM64ZABSMergingH, | |
| ssaop.OpARM64ZNEGMergingH: | |
| p = simdZ2kvPredResultInArg0(s, v, arm64.ARNG_H) | |
| case ssaop.OpARM64ZFABSMergingS, | |
| ssaop.OpARM64ZABSMergingS, | |
| ssaop.OpARM64ZFRINTPMergingS, | |
| ssaop.OpARM64ZFCVTZSMergingS, | |
| ssaop.OpARM64ZFRINTMMergingS, | |
| ssaop.OpARM64ZFNEGMergingS, | |
| ssaop.OpARM64ZNEGMergingS, | |
| ssaop.OpARM64ZFRINTNMergingS, | |
| ssaop.OpARM64ZFSQRTMergingS, | |
| ssaop.OpARM64ZFRINTZMergingS: | |
| p = simdZ2kvPredResultInArg0(s, v, arm64.ARNG_S) | |
| case ssaop.OpARM64ZMLAB, | |
| ssaop.OpARM64ZMLAMergingB: | |
| p = simdZ3kvPredAcc(s, v, arm64.ARNG_B) | |
| case ssaop.OpARM64ZFMLAD, | |
| ssaop.OpARM64ZFMLAMergingD, | |
| ssaop.OpARM64ZMLAD, | |
| ssaop.OpARM64ZMLAMergingD: | |
| p = simdZ3kvPredAcc(s, v, arm64.ARNG_D) | |
| case ssaop.OpARM64ZMLAH, | |
| ssaop.OpARM64ZMLAMergingH: | |
| p = simdZ3kvPredAcc(s, v, arm64.ARNG_H) | |
| case ssaop.OpARM64ZFMLAS, | |
| ssaop.OpARM64ZFMLAMergingS, | |
| ssaop.OpARM64ZMLAS, | |
| ssaop.OpARM64ZMLAMergingS: | |
| p = simdZ3kvPredAcc(s, v, arm64.ARNG_S) | |
| case ssaop.OpARM64ZADDMergingPrefixedB, | |
| ssaop.OpARM64ZSQADDMergingPrefixedB, | |
| ssaop.OpARM64ZUQADDMergingPrefixedB, | |
| ssaop.OpARM64ZANDMergingPrefixedB, | |
| ssaop.OpARM64ZSMAXMergingPrefixedB, | |
| ssaop.OpARM64ZUMAXMergingPrefixedB, | |
| ssaop.OpARM64ZSMINMergingPrefixedB, | |
| ssaop.OpARM64ZUMINMergingPrefixedB, | |
| ssaop.OpARM64ZMULMergingPrefixedB, | |
| ssaop.OpARM64ZSMULHMergingPrefixedB, | |
| ssaop.OpARM64ZUMULHMergingPrefixedB, | |
| ssaop.OpARM64ZORRMergingPrefixedB, | |
| ssaop.OpARM64ZEORMergingPrefixedB: | |
| p = simdZ3kvPredResultInArg0(s, v, arm64.ARNG_B) | |
| case ssaop.OpARM64ZFADDMergingPrefixedD, | |
| ssaop.OpARM64ZADDMergingPrefixedD, | |
| ssaop.OpARM64ZSQADDMergingPrefixedD, | |
| ssaop.OpARM64ZUQADDMergingPrefixedD, | |
| ssaop.OpARM64ZANDMergingPrefixedD, | |
| ssaop.OpARM64ZSMAXMergingPrefixedD, | |
| ssaop.OpARM64ZUMAXMergingPrefixedD, | |
| ssaop.OpARM64ZSMINMergingPrefixedD, | |
| ssaop.OpARM64ZUMINMergingPrefixedD, | |
| ssaop.OpARM64ZFMULMergingPrefixedD, | |
| ssaop.OpARM64ZMULMergingPrefixedD, | |
| ssaop.OpARM64ZSMULHMergingPrefixedD, | |
| ssaop.OpARM64ZUMULHMergingPrefixedD, | |
| ssaop.OpARM64ZORRMergingPrefixedD, | |
| ssaop.OpARM64ZEORMergingPrefixedD: | |
| p = simdZ3kvPredResultInArg0(s, v, arm64.ARNG_D) | |
| case ssaop.OpARM64ZADDMergingPrefixedH, | |
| ssaop.OpARM64ZSQADDMergingPrefixedH, | |
| ssaop.OpARM64ZUQADDMergingPrefixedH, | |
| ssaop.OpARM64ZANDMergingPrefixedH, | |
| ssaop.OpARM64ZSMAXMergingPrefixedH, | |
| ssaop.OpARM64ZUMAXMergingPrefixedH, | |
| ssaop.OpARM64ZSMINMergingPrefixedH, | |
| ssaop.OpARM64ZUMINMergingPrefixedH, | |
| ssaop.OpARM64ZMULMergingPrefixedH, | |
| ssaop.OpARM64ZSMULHMergingPrefixedH, | |
| ssaop.OpARM64ZUMULHMergingPrefixedH, | |
| ssaop.OpARM64ZORRMergingPrefixedH, | |
| ssaop.OpARM64ZEORMergingPrefixedH: | |
| p = simdZ3kvPredResultInArg0(s, v, arm64.ARNG_H) | |
| case ssaop.OpARM64ZFADDMergingPrefixedS, | |
| ssaop.OpARM64ZADDMergingPrefixedS, | |
| ssaop.OpARM64ZSQADDMergingPrefixedS, | |
| ssaop.OpARM64ZUQADDMergingPrefixedS, | |
| ssaop.OpARM64ZANDMergingPrefixedS, | |
| ssaop.OpARM64ZSMAXMergingPrefixedS, | |
| ssaop.OpARM64ZUMAXMergingPrefixedS, | |
| ssaop.OpARM64ZSMINMergingPrefixedS, | |
| ssaop.OpARM64ZUMINMergingPrefixedS, | |
| ssaop.OpARM64ZFMULMergingPrefixedS, | |
| ssaop.OpARM64ZMULMergingPrefixedS, | |
| ssaop.OpARM64ZSMULHMergingPrefixedS, | |
| ssaop.OpARM64ZUMULHMergingPrefixedS, | |
| ssaop.OpARM64ZORRMergingPrefixedS, | |
| ssaop.OpARM64ZEORMergingPrefixedS: | |
| p = simdZ3kvPredResultInArg0(s, v, arm64.ARNG_S) | |
| default: | |
| // Unknown reg shape | |
| return false | |
| } | |
| // Ensure p is marked as used (may not be used in all generated code paths) | |
| _ = p | |
| return true | |
| } |