@@ -19,12 +19,10 @@ define <2 x half> @vfabs_vv_v2f16(<2 x half> %va, <2 x i1> %m, i32 zeroext %evl)
19
19
;
20
20
; ZVFHMIN-LABEL: vfabs_vv_v2f16:
21
21
; ZVFHMIN: # %bb.0:
22
- ; ZVFHMIN-NEXT: vsetivli zero, 2, e16, mf4, ta, ma
23
- ; ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v8
24
- ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, mf2, ta, ma
25
- ; ZVFHMIN-NEXT: vfabs.v v9, v9, v0.t
26
- ; ZVFHMIN-NEXT: vsetivli zero, 2, e16, mf4, ta, ma
27
- ; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v9
22
+ ; ZVFHMIN-NEXT: lui a1, 8
23
+ ; ZVFHMIN-NEXT: addi a1, a1, -1
24
+ ; ZVFHMIN-NEXT: vsetvli zero, a0, e16, mf4, ta, ma
25
+ ; ZVFHMIN-NEXT: vand.vx v8, v8, a1, v0.t
28
26
; ZVFHMIN-NEXT: ret
29
27
%v = call <2 x half > @llvm.vp.fabs.v2f16 (<2 x half > %va , <2 x i1 > %m , i32 %evl )
30
28
ret <2 x half > %v
@@ -39,12 +37,10 @@ define <2 x half> @vfabs_vv_v2f16_unmasked(<2 x half> %va, i32 zeroext %evl) {
39
37
;
40
38
; ZVFHMIN-LABEL: vfabs_vv_v2f16_unmasked:
41
39
; ZVFHMIN: # %bb.0:
42
- ; ZVFHMIN-NEXT: vsetivli zero, 2, e16, mf4, ta, ma
43
- ; ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v8
44
- ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, mf2, ta, ma
45
- ; ZVFHMIN-NEXT: vfabs.v v9, v9
46
- ; ZVFHMIN-NEXT: vsetivli zero, 2, e16, mf4, ta, ma
47
- ; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v9
40
+ ; ZVFHMIN-NEXT: lui a1, 8
41
+ ; ZVFHMIN-NEXT: addi a1, a1, -1
42
+ ; ZVFHMIN-NEXT: vsetvli zero, a0, e16, mf4, ta, ma
43
+ ; ZVFHMIN-NEXT: vand.vx v8, v8, a1
48
44
; ZVFHMIN-NEXT: ret
49
45
%v = call <2 x half > @llvm.vp.fabs.v2f16 (<2 x half > %va , <2 x i1 > splat (i1 true ), i32 %evl )
50
46
ret <2 x half > %v
@@ -61,12 +57,10 @@ define <4 x half> @vfabs_vv_v4f16(<4 x half> %va, <4 x i1> %m, i32 zeroext %evl)
61
57
;
62
58
; ZVFHMIN-LABEL: vfabs_vv_v4f16:
63
59
; ZVFHMIN: # %bb.0:
64
- ; ZVFHMIN-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
65
- ; ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v8
66
- ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m1, ta, ma
67
- ; ZVFHMIN-NEXT: vfabs.v v9, v9, v0.t
68
- ; ZVFHMIN-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
69
- ; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v9
60
+ ; ZVFHMIN-NEXT: lui a1, 8
61
+ ; ZVFHMIN-NEXT: addi a1, a1, -1
62
+ ; ZVFHMIN-NEXT: vsetvli zero, a0, e16, mf2, ta, ma
63
+ ; ZVFHMIN-NEXT: vand.vx v8, v8, a1, v0.t
70
64
; ZVFHMIN-NEXT: ret
71
65
%v = call <4 x half > @llvm.vp.fabs.v4f16 (<4 x half > %va , <4 x i1 > %m , i32 %evl )
72
66
ret <4 x half > %v
@@ -81,12 +75,10 @@ define <4 x half> @vfabs_vv_v4f16_unmasked(<4 x half> %va, i32 zeroext %evl) {
81
75
;
82
76
; ZVFHMIN-LABEL: vfabs_vv_v4f16_unmasked:
83
77
; ZVFHMIN: # %bb.0:
84
- ; ZVFHMIN-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
85
- ; ZVFHMIN-NEXT: vfwcvt.f.f.v v9, v8
86
- ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m1, ta, ma
87
- ; ZVFHMIN-NEXT: vfabs.v v9, v9
88
- ; ZVFHMIN-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
89
- ; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v9
78
+ ; ZVFHMIN-NEXT: lui a1, 8
79
+ ; ZVFHMIN-NEXT: addi a1, a1, -1
80
+ ; ZVFHMIN-NEXT: vsetvli zero, a0, e16, mf2, ta, ma
81
+ ; ZVFHMIN-NEXT: vand.vx v8, v8, a1
90
82
; ZVFHMIN-NEXT: ret
91
83
%v = call <4 x half > @llvm.vp.fabs.v4f16 (<4 x half > %va , <4 x i1 > splat (i1 true ), i32 %evl )
92
84
ret <4 x half > %v
@@ -103,12 +95,10 @@ define <8 x half> @vfabs_vv_v8f16(<8 x half> %va, <8 x i1> %m, i32 zeroext %evl)
103
95
;
104
96
; ZVFHMIN-LABEL: vfabs_vv_v8f16:
105
97
; ZVFHMIN: # %bb.0:
106
- ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
107
- ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
108
- ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
109
- ; ZVFHMIN-NEXT: vfabs.v v10, v10, v0.t
110
- ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
111
- ; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v10
98
+ ; ZVFHMIN-NEXT: lui a1, 8
99
+ ; ZVFHMIN-NEXT: addi a1, a1, -1
100
+ ; ZVFHMIN-NEXT: vsetvli zero, a0, e16, m1, ta, ma
101
+ ; ZVFHMIN-NEXT: vand.vx v8, v8, a1, v0.t
112
102
; ZVFHMIN-NEXT: ret
113
103
%v = call <8 x half > @llvm.vp.fabs.v8f16 (<8 x half > %va , <8 x i1 > %m , i32 %evl )
114
104
ret <8 x half > %v
@@ -123,12 +113,10 @@ define <8 x half> @vfabs_vv_v8f16_unmasked(<8 x half> %va, i32 zeroext %evl) {
123
113
;
124
114
; ZVFHMIN-LABEL: vfabs_vv_v8f16_unmasked:
125
115
; ZVFHMIN: # %bb.0:
126
- ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
127
- ; ZVFHMIN-NEXT: vfwcvt.f.f.v v10, v8
128
- ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m2, ta, ma
129
- ; ZVFHMIN-NEXT: vfabs.v v10, v10
130
- ; ZVFHMIN-NEXT: vsetivli zero, 8, e16, m1, ta, ma
131
- ; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v10
116
+ ; ZVFHMIN-NEXT: lui a1, 8
117
+ ; ZVFHMIN-NEXT: addi a1, a1, -1
118
+ ; ZVFHMIN-NEXT: vsetvli zero, a0, e16, m1, ta, ma
119
+ ; ZVFHMIN-NEXT: vand.vx v8, v8, a1
132
120
; ZVFHMIN-NEXT: ret
133
121
%v = call <8 x half > @llvm.vp.fabs.v8f16 (<8 x half > %va , <8 x i1 > splat (i1 true ), i32 %evl )
134
122
ret <8 x half > %v
@@ -145,12 +133,10 @@ define <16 x half> @vfabs_vv_v16f16(<16 x half> %va, <16 x i1> %m, i32 zeroext %
145
133
;
146
134
; ZVFHMIN-LABEL: vfabs_vv_v16f16:
147
135
; ZVFHMIN: # %bb.0:
148
- ; ZVFHMIN-NEXT: vsetivli zero, 16, e16, m2, ta, ma
149
- ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v8
150
- ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m4, ta, ma
151
- ; ZVFHMIN-NEXT: vfabs.v v12, v12, v0.t
152
- ; ZVFHMIN-NEXT: vsetivli zero, 16, e16, m2, ta, ma
153
- ; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v12
136
+ ; ZVFHMIN-NEXT: lui a1, 8
137
+ ; ZVFHMIN-NEXT: addi a1, a1, -1
138
+ ; ZVFHMIN-NEXT: vsetvli zero, a0, e16, m2, ta, ma
139
+ ; ZVFHMIN-NEXT: vand.vx v8, v8, a1, v0.t
154
140
; ZVFHMIN-NEXT: ret
155
141
%v = call <16 x half > @llvm.vp.fabs.v16f16 (<16 x half > %va , <16 x i1 > %m , i32 %evl )
156
142
ret <16 x half > %v
@@ -165,12 +151,10 @@ define <16 x half> @vfabs_vv_v16f16_unmasked(<16 x half> %va, i32 zeroext %evl)
165
151
;
166
152
; ZVFHMIN-LABEL: vfabs_vv_v16f16_unmasked:
167
153
; ZVFHMIN: # %bb.0:
168
- ; ZVFHMIN-NEXT: vsetivli zero, 16, e16, m2, ta, ma
169
- ; ZVFHMIN-NEXT: vfwcvt.f.f.v v12, v8
170
- ; ZVFHMIN-NEXT: vsetvli zero, a0, e32, m4, ta, ma
171
- ; ZVFHMIN-NEXT: vfabs.v v12, v12
172
- ; ZVFHMIN-NEXT: vsetivli zero, 16, e16, m2, ta, ma
173
- ; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v12
154
+ ; ZVFHMIN-NEXT: lui a1, 8
155
+ ; ZVFHMIN-NEXT: addi a1, a1, -1
156
+ ; ZVFHMIN-NEXT: vsetvli zero, a0, e16, m2, ta, ma
157
+ ; ZVFHMIN-NEXT: vand.vx v8, v8, a1
174
158
; ZVFHMIN-NEXT: ret
175
159
%v = call <16 x half > @llvm.vp.fabs.v16f16 (<16 x half > %va , <16 x i1 > splat (i1 true ), i32 %evl )
176
160
ret <16 x half > %v
0 commit comments