1
2
3 package arm64
4
5 import (
6 "cmd/compile/internal/ssa"
7 "cmd/compile/internal/ssa/ssaop"
8 "cmd/compile/internal/ssagen"
9 "cmd/internal/obj"
10 "cmd/internal/obj/arm64"
11 )
12
13 func ssaGenSIMDSVEValue(s *ssagen.State, v *ssa.Value) bool {
14 var p *obj.Prog
15 switch v.Op {
16 case ssaop.OpARM64ZADDB,
17 ssaop.OpARM64ZSQADDB,
18 ssaop.OpARM64ZUQADDB:
19 p = simdZ21(s, v, arm64.ARNG_B)
20
21 case ssaop.OpARM64ZFADDD,
22 ssaop.OpARM64ZADDD,
23 ssaop.OpARM64ZSQADDD,
24 ssaop.OpARM64ZUQADDD:
25 p = simdZ21(s, v, arm64.ARNG_D)
26
27 case ssaop.OpARM64ZADDH,
28 ssaop.OpARM64ZSQADDH,
29 ssaop.OpARM64ZUQADDH:
30 p = simdZ21(s, v, arm64.ARNG_H)
31
32 case ssaop.OpARM64ZFADDS,
33 ssaop.OpARM64ZADDS,
34 ssaop.OpARM64ZSQADDS,
35 ssaop.OpARM64ZUQADDS:
36 p = simdZ21(s, v, arm64.ARNG_S)
37
38 case ssaop.OpARM64ZCMPGTB:
39 p = simdZ2kk(s, v, arm64.ARNG_B)
40
41 case ssaop.OpARM64ZCMPGTD:
42 p = simdZ2kk(s, v, arm64.ARNG_D)
43
44 case ssaop.OpARM64ZCMPGTH:
45 p = simdZ2kk(s, v, arm64.ARNG_H)
46
47 case ssaop.OpARM64ZCMPGTS:
48 p = simdZ2kk(s, v, arm64.ARNG_S)
49
50 default:
51
52 return false
53 }
54
55
56 _ = p
57 return true
58 }
59
View as plain text