@@ -79,9 +79,8 @@ define half @fneg_copysign(half %x, half %y) {
79
79
80
80
define half @fneg_fabs_copysign (half %x , half %y ) {
81
81
; CHECK-LABEL: @fneg_fabs_copysign(
82
- ; CHECK-NEXT: [[COPYSIGN:%.*]] = call half @llvm.copysign.f16(half [[X:%.*]], half [[Y:%.*]])
83
- ; CHECK-NEXT: [[FABS_COPYSIGN:%.*]] = call half @llvm.fabs.f16(half [[COPYSIGN]])
84
- ; CHECK-NEXT: [[FNEG_FABS_COPYSIGN:%.*]] = fneg half [[FABS_COPYSIGN]]
82
+ ; CHECK-NEXT: [[TMP1:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
83
+ ; CHECK-NEXT: [[FNEG_FABS_COPYSIGN:%.*]] = fneg half [[TMP1]]
85
84
; CHECK-NEXT: ret half [[FNEG_FABS_COPYSIGN]]
86
85
;
87
86
%copysign = call half @llvm.copysign.f16 (half %x , half %y )
@@ -93,9 +92,8 @@ define half @fneg_fabs_copysign(half %x, half %y) {
93
92
; https://alive2.llvm.org/ce/z/Ft-7ea
94
93
define half @fabs_copysign (half %x , half %y ) {
95
94
; CHECK-LABEL: @fabs_copysign(
96
- ; CHECK-NEXT: [[COPYSIGN:%.*]] = call half @llvm.copysign.f16(half [[X:%.*]], half [[Y:%.*]])
97
- ; CHECK-NEXT: [[FABS_COPYSIGN:%.*]] = call half @llvm.fabs.f16(half [[COPYSIGN]])
98
- ; CHECK-NEXT: ret half [[FABS_COPYSIGN]]
95
+ ; CHECK-NEXT: [[TMP1:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
96
+ ; CHECK-NEXT: ret half [[TMP1]]
99
97
;
100
98
%copysign = call half @llvm.copysign.f16 (half %x , half %y )
101
99
%fabs.copysign = call half @llvm.fabs.f16 (half %copysign )
@@ -115,9 +113,8 @@ define <2 x half> @fneg_copysign_vector(<2 x half> %x, <2 x half> %y) {
115
113
116
114
define <2 x half > @fneg_fabs_copysign_vector (<2 x half > %x , <2 x half > %y ) {
117
115
; CHECK-LABEL: @fneg_fabs_copysign_vector(
118
- ; CHECK-NEXT: [[COPYSIGN:%.*]] = call <2 x half> @llvm.copysign.v2f16(<2 x half> [[X:%.*]], <2 x half> [[Y:%.*]])
119
- ; CHECK-NEXT: [[FABS_COPYSIGN:%.*]] = call <2 x half> @llvm.fabs.v2f16(<2 x half> [[COPYSIGN]])
120
- ; CHECK-NEXT: [[FNEG_FABS_COPYSIGN:%.*]] = fneg <2 x half> [[FABS_COPYSIGN]]
116
+ ; CHECK-NEXT: [[TMP1:%.*]] = call <2 x half> @llvm.fabs.v2f16(<2 x half> [[X:%.*]])
117
+ ; CHECK-NEXT: [[FNEG_FABS_COPYSIGN:%.*]] = fneg <2 x half> [[TMP1]]
121
118
; CHECK-NEXT: ret <2 x half> [[FNEG_FABS_COPYSIGN]]
122
119
;
123
120
%copysign = call <2 x half > @llvm.copysign.v2f16 (<2 x half > %x , <2 x half > %y )
@@ -128,9 +125,8 @@ define <2 x half> @fneg_fabs_copysign_vector(<2 x half> %x, <2 x half> %y) {
128
125
129
126
define <2 x half > @fabs_copysign_vector (<2 x half > %x , <2 x half > %y ) {
130
127
; CHECK-LABEL: @fabs_copysign_vector(
131
- ; CHECK-NEXT: [[COPYSIGN:%.*]] = call <2 x half> @llvm.copysign.v2f16(<2 x half> [[X:%.*]], <2 x half> [[Y:%.*]])
132
- ; CHECK-NEXT: [[FABS_COPYSIGN:%.*]] = call <2 x half> @llvm.fabs.v2f16(<2 x half> [[COPYSIGN]])
133
- ; CHECK-NEXT: ret <2 x half> [[FABS_COPYSIGN]]
128
+ ; CHECK-NEXT: [[TMP1:%.*]] = call <2 x half> @llvm.fabs.v2f16(<2 x half> [[X:%.*]])
129
+ ; CHECK-NEXT: ret <2 x half> [[TMP1]]
134
130
;
135
131
%copysign = call <2 x half > @llvm.copysign.v2f16 (<2 x half > %x , <2 x half > %y )
136
132
%fabs.copysign = call <2 x half > @llvm.fabs.v2f16 (<2 x half > %copysign )
@@ -150,9 +146,8 @@ define half @fneg_copysign_flags(half %x, half %y) {
150
146
151
147
define half @fneg_fabs_copysign_flags (half %x , half %y ) {
152
148
; CHECK-LABEL: @fneg_fabs_copysign_flags(
153
- ; CHECK-NEXT: [[COPYSIGN:%.*]] = call nnan ninf nsz half @llvm.copysign.f16(half [[X:%.*]], half [[Y:%.*]])
154
- ; CHECK-NEXT: [[FABS_COPYSIGN:%.*]] = call nnan ninf afn half @llvm.fabs.f16(half [[COPYSIGN]])
155
- ; CHECK-NEXT: [[FNEG_FABS_COPYSIGN:%.*]] = fneg reassoc ninf half [[FABS_COPYSIGN]]
149
+ ; CHECK-NEXT: [[TMP1:%.*]] = call nnan ninf afn half @llvm.fabs.f16(half [[X:%.*]])
150
+ ; CHECK-NEXT: [[FNEG_FABS_COPYSIGN:%.*]] = fneg reassoc ninf half [[TMP1]]
156
151
; CHECK-NEXT: ret half [[FNEG_FABS_COPYSIGN]]
157
152
;
158
153
%copysign = call nnan nsz ninf half @llvm.copysign.f16 (half %x , half %y )
@@ -175,9 +170,8 @@ define half @fneg_nsz_copysign(half %x, half %y) {
175
170
176
171
define half @fneg_fabs_copysign_flags_none_fabs (half %x , half %y ) {
177
172
; CHECK-LABEL: @fneg_fabs_copysign_flags_none_fabs(
178
- ; CHECK-NEXT: [[COPYSIGN:%.*]] = call nnan ninf nsz half @llvm.copysign.f16(half [[X:%.*]], half [[Y:%.*]])
179
- ; CHECK-NEXT: [[FABS_COPYSIGN:%.*]] = call half @llvm.fabs.f16(half [[COPYSIGN]])
180
- ; CHECK-NEXT: [[FNEG_FABS_COPYSIGN:%.*]] = fneg fast half [[FABS_COPYSIGN]]
173
+ ; CHECK-NEXT: [[TMP1:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
174
+ ; CHECK-NEXT: [[FNEG_FABS_COPYSIGN:%.*]] = fneg fast half [[TMP1]]
181
175
; CHECK-NEXT: ret half [[FNEG_FABS_COPYSIGN]]
182
176
;
183
177
%copysign = call nnan nsz ninf half @llvm.copysign.f16 (half %x , half %y )
@@ -188,9 +182,8 @@ define half @fneg_fabs_copysign_flags_none_fabs(half %x, half %y) {
188
182
189
183
define half @fabs_copysign_flags (half %x , half %y ) {
190
184
; CHECK-LABEL: @fabs_copysign_flags(
191
- ; CHECK-NEXT: [[COPYSIGN:%.*]] = call nnan half @llvm.copysign.f16(half [[X:%.*]], half [[Y:%.*]])
192
- ; CHECK-NEXT: [[FABS_COPYSIGN:%.*]] = call nnan nsz half @llvm.fabs.f16(half [[COPYSIGN]])
193
- ; CHECK-NEXT: ret half [[FABS_COPYSIGN]]
185
+ ; CHECK-NEXT: [[TMP1:%.*]] = call nnan nsz half @llvm.fabs.f16(half [[X:%.*]])
186
+ ; CHECK-NEXT: ret half [[TMP1]]
194
187
;
195
188
%copysign = call nnan half @llvm.copysign.f16 (half %x , half %y )
196
189
%fabs.copysign = call nsz nnan half @llvm.fabs.f16 (half %copysign )
@@ -199,9 +192,8 @@ define half @fabs_copysign_flags(half %x, half %y) {
199
192
200
193
define half @fabs_copysign_all_flags (half %x , half %y ) {
201
194
; CHECK-LABEL: @fabs_copysign_all_flags(
202
- ; CHECK-NEXT: [[COPYSIGN:%.*]] = call fast half @llvm.copysign.f16(half [[X:%.*]], half [[Y:%.*]])
203
- ; CHECK-NEXT: [[FABS_COPYSIGN:%.*]] = call fast half @llvm.fabs.f16(half [[COPYSIGN]])
204
- ; CHECK-NEXT: ret half [[FABS_COPYSIGN]]
195
+ ; CHECK-NEXT: [[TMP1:%.*]] = call fast half @llvm.fabs.f16(half [[X:%.*]])
196
+ ; CHECK-NEXT: ret half [[TMP1]]
205
197
;
206
198
%copysign = call fast half @llvm.copysign.f16 (half %x , half %y )
207
199
%fabs.copysign = call fast half @llvm.fabs.f16 (half %copysign )
@@ -212,8 +204,8 @@ define half @fabs_copysign_no_flags_copysign_user(half %x, half %y, ptr %ptr) {
212
204
; CHECK-LABEL: @fabs_copysign_no_flags_copysign_user(
213
205
; CHECK-NEXT: [[COPYSIGN:%.*]] = call half @llvm.copysign.f16(half [[X:%.*]], half [[Y:%.*]])
214
206
; CHECK-NEXT: store half [[COPYSIGN]], ptr [[PTR:%.*]], align 2
215
- ; CHECK-NEXT: [[FABS_COPYSIGN :%.*]] = call fast half @llvm.fabs.f16(half [[COPYSIGN ]])
216
- ; CHECK-NEXT: ret half [[FABS_COPYSIGN ]]
207
+ ; CHECK-NEXT: [[TMP1 :%.*]] = call fast half @llvm.fabs.f16(half [[X ]])
208
+ ; CHECK-NEXT: ret half [[TMP1 ]]
217
209
;
218
210
%copysign = call half @llvm.copysign.f16 (half %x , half %y )
219
211
store half %copysign , ptr %ptr
@@ -223,9 +215,8 @@ define half @fabs_copysign_no_flags_copysign_user(half %x, half %y, ptr %ptr) {
223
215
224
216
define half @fneg_fabs_copysign_drop_flags (half %x , half %y ) {
225
217
; CHECK-LABEL: @fneg_fabs_copysign_drop_flags(
226
- ; CHECK-NEXT: [[COPYSIGN:%.*]] = call nnan half @llvm.copysign.f16(half [[X:%.*]], half [[Y:%.*]])
227
- ; CHECK-NEXT: [[FABS_COPYSIGN:%.*]] = call ninf half @llvm.fabs.f16(half [[COPYSIGN]])
228
- ; CHECK-NEXT: [[FNEG_FABS_COPYSIGN:%.*]] = fneg nsz half [[FABS_COPYSIGN]]
218
+ ; CHECK-NEXT: [[TMP1:%.*]] = call ninf half @llvm.fabs.f16(half [[X:%.*]])
219
+ ; CHECK-NEXT: [[FNEG_FABS_COPYSIGN:%.*]] = fneg nsz half [[TMP1]]
229
220
; CHECK-NEXT: ret half [[FNEG_FABS_COPYSIGN]]
230
221
;
231
222
%copysign = call nnan half @llvm.copysign.f16 (half %x , half %y )
@@ -251,8 +242,8 @@ define half @fabs_copysign_multi_use(half %x, half %y, ptr %ptr) {
251
242
; CHECK-LABEL: @fabs_copysign_multi_use(
252
243
; CHECK-NEXT: [[COPYSIGN:%.*]] = call half @llvm.copysign.f16(half [[X:%.*]], half [[Y:%.*]])
253
244
; CHECK-NEXT: store half [[COPYSIGN]], ptr [[PTR:%.*]], align 2
254
- ; CHECK-NEXT: [[FABS_COPYSIGN :%.*]] = call half @llvm.fabs.f16(half [[COPYSIGN ]])
255
- ; CHECK-NEXT: ret half [[FABS_COPYSIGN ]]
245
+ ; CHECK-NEXT: [[TMP1 :%.*]] = call half @llvm.fabs.f16(half [[X ]])
246
+ ; CHECK-NEXT: ret half [[TMP1 ]]
256
247
;
257
248
%copysign = call half @llvm.copysign.f16 (half %x , half %y )
258
249
store half %copysign , ptr %ptr
@@ -264,8 +255,8 @@ define half @fabs_flags_copysign_multi_use(half %x, half %y, ptr %ptr) {
264
255
; CHECK-LABEL: @fabs_flags_copysign_multi_use(
265
256
; CHECK-NEXT: [[COPYSIGN:%.*]] = call half @llvm.copysign.f16(half [[X:%.*]], half [[Y:%.*]])
266
257
; CHECK-NEXT: store half [[COPYSIGN]], ptr [[PTR:%.*]], align 2
267
- ; CHECK-NEXT: [[FABS_COPYSIGN :%.*]] = call nnan ninf half @llvm.fabs.f16(half [[COPYSIGN ]])
268
- ; CHECK-NEXT: ret half [[FABS_COPYSIGN ]]
258
+ ; CHECK-NEXT: [[TMP1 :%.*]] = call nnan ninf half @llvm.fabs.f16(half [[X ]])
259
+ ; CHECK-NEXT: ret half [[TMP1 ]]
269
260
;
270
261
%copysign = call half @llvm.copysign.f16 (half %x , half %y )
271
262
store half %copysign , ptr %ptr
@@ -275,10 +266,9 @@ define half @fabs_flags_copysign_multi_use(half %x, half %y, ptr %ptr) {
275
266
276
267
define half @fneg_fabs_copysign_multi_use_fabs (half %x , half %y , ptr %ptr ) {
277
268
; CHECK-LABEL: @fneg_fabs_copysign_multi_use_fabs(
278
- ; CHECK-NEXT: [[COPYSIGN:%.*]] = call half @llvm.copysign.f16(half [[X:%.*]], half [[Y:%.*]])
279
- ; CHECK-NEXT: [[FABS_COPYSIGN:%.*]] = call half @llvm.fabs.f16(half [[COPYSIGN]])
280
- ; CHECK-NEXT: store half [[FABS_COPYSIGN]], ptr [[PTR:%.*]], align 2
281
- ; CHECK-NEXT: ret half [[FABS_COPYSIGN]]
269
+ ; CHECK-NEXT: [[TMP1:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
270
+ ; CHECK-NEXT: store half [[TMP1]], ptr [[PTR:%.*]], align 2
271
+ ; CHECK-NEXT: ret half [[TMP1]]
282
272
;
283
273
%copysign = call half @llvm.copysign.f16 (half %x , half %y )
284
274
%fabs.copysign = call half @llvm.fabs.f16 (half %copysign )
0 commit comments