@@ -227,12 +227,13 @@ bb:
227
227
ret void
228
228
}
229
229
230
- ; This should promote
230
+ ; This should not promote
231
231
define internal fastcc void @callee_avx2_legal256_prefer256_call_avx2_legal512_prefer256 (ptr %arg , ptr readonly %arg1 ) #3 {
232
232
; CHECK-LABEL: define {{[^@]+}}@callee_avx2_legal256_prefer256_call_avx2_legal512_prefer256
233
- ; CHECK-SAME: (ptr [[ARG:%.*]], <8 x i64> [[ARG1_0_VAL :%.*]]) #[[ATTR3:[0-9]+]] {
233
+ ; CHECK-SAME: (ptr [[ARG:%.*]], ptr readonly [[ARG1 :%.*]]) #[[ATTR3:[0-9]+]] {
234
234
; CHECK-NEXT: bb:
235
- ; CHECK-NEXT: store <8 x i64> [[ARG1_0_VAL]], ptr [[ARG]], align 64
235
+ ; CHECK-NEXT: [[TMP:%.*]] = load <8 x i64>, ptr [[ARG1]], align 64
236
+ ; CHECK-NEXT: store <8 x i64> [[TMP]], ptr [[ARG]], align 64
236
237
; CHECK-NEXT: ret void
237
238
;
238
239
bb:
@@ -243,13 +244,12 @@ bb:
243
244
244
245
define void @avx2_legal256_prefer256_call_avx2_legal512_prefer256 (ptr %arg ) #4 {
245
246
; CHECK-LABEL: define {{[^@]+}}@avx2_legal256_prefer256_call_avx2_legal512_prefer256
246
- ; CHECK-SAME: (ptr [[ARG:%.*]]) #[[ATTR3 ]] {
247
+ ; CHECK-SAME: (ptr [[ARG:%.*]]) #[[ATTR4:[0-9]+ ]] {
247
248
; CHECK-NEXT: bb:
248
249
; CHECK-NEXT: [[TMP:%.*]] = alloca <8 x i64>, align 32
249
250
; CHECK-NEXT: [[TMP2:%.*]] = alloca <8 x i64>, align 32
250
251
; CHECK-NEXT: call void @llvm.memset.p0.i64(ptr align 32 [[TMP]], i8 0, i64 32, i1 false)
251
- ; CHECK-NEXT: [[TMP_VAL:%.*]] = load <8 x i64>, ptr [[TMP]], align 64
252
- ; CHECK-NEXT: call fastcc void @callee_avx2_legal256_prefer256_call_avx2_legal512_prefer256(ptr [[TMP2]], <8 x i64> [[TMP_VAL]])
252
+ ; CHECK-NEXT: call fastcc void @callee_avx2_legal256_prefer256_call_avx2_legal512_prefer256(ptr [[TMP2]], ptr [[TMP]])
253
253
; CHECK-NEXT: [[TMP4:%.*]] = load <8 x i64>, ptr [[TMP2]], align 32
254
254
; CHECK-NEXT: store <8 x i64> [[TMP4]], ptr [[ARG]], align 2
255
255
; CHECK-NEXT: ret void
@@ -264,12 +264,13 @@ bb:
264
264
ret void
265
265
}
266
266
267
- ; This should promote
267
+ ; This should not promote
268
268
define internal fastcc void @callee_avx2_legal512_prefer256_call_avx2_legal256_prefer256 (ptr %arg , ptr readonly %arg1 ) #4 {
269
269
; CHECK-LABEL: define {{[^@]+}}@callee_avx2_legal512_prefer256_call_avx2_legal256_prefer256
270
- ; CHECK-SAME: (ptr [[ARG:%.*]], <8 x i64> [[ARG1_0_VAL :%.*]]) #[[ATTR3 ]] {
270
+ ; CHECK-SAME: (ptr [[ARG:%.*]], ptr readonly [[ARG1 :%.*]]) #[[ATTR4 ]] {
271
271
; CHECK-NEXT: bb:
272
- ; CHECK-NEXT: store <8 x i64> [[ARG1_0_VAL]], ptr [[ARG]], align 64
272
+ ; CHECK-NEXT: [[TMP:%.*]] = load <8 x i64>, ptr [[ARG1]], align 64
273
+ ; CHECK-NEXT: store <8 x i64> [[TMP]], ptr [[ARG]], align 64
273
274
; CHECK-NEXT: ret void
274
275
;
275
276
bb:
@@ -285,8 +286,7 @@ define void @avx2_legal512_prefer256_call_avx2_legal256_prefer256(ptr %arg) #3 {
285
286
; CHECK-NEXT: [[TMP:%.*]] = alloca <8 x i64>, align 32
286
287
; CHECK-NEXT: [[TMP2:%.*]] = alloca <8 x i64>, align 32
287
288
; CHECK-NEXT: call void @llvm.memset.p0.i64(ptr align 32 [[TMP]], i8 0, i64 32, i1 false)
288
- ; CHECK-NEXT: [[TMP_VAL:%.*]] = load <8 x i64>, ptr [[TMP]], align 64
289
- ; CHECK-NEXT: call fastcc void @callee_avx2_legal512_prefer256_call_avx2_legal256_prefer256(ptr [[TMP2]], <8 x i64> [[TMP_VAL]])
289
+ ; CHECK-NEXT: call fastcc void @callee_avx2_legal512_prefer256_call_avx2_legal256_prefer256(ptr [[TMP2]], ptr [[TMP]])
290
290
; CHECK-NEXT: [[TMP4:%.*]] = load <8 x i64>, ptr [[TMP2]], align 32
291
291
; CHECK-NEXT: store <8 x i64> [[TMP4]], ptr [[ARG]], align 2
292
292
; CHECK-NEXT: ret void
0 commit comments