@@ -333,15 +333,10 @@ define <4 x i32> @test_x86_avx_cvt_pd2dq_256(<4 x double> %a0) #0 {
333333; CHECK-NEXT: [[TMP1:%.*]] = load <4 x i64>, ptr @__msan_param_tls, align 8
334334; CHECK-NEXT: [[TMP4:%.*]] = load i64, ptr @__msan_va_arg_overflow_size_tls, align 8
335335; CHECK-NEXT: call void @llvm.donothing()
336- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast <4 x i64> [[TMP1]] to i256
337- ; CHECK-NEXT: [[_MSCMP:%.*]] = icmp ne i256 [[TMP2]], 0
338- ; CHECK-NEXT: br i1 [[_MSCMP]], label [[TMP6:%.*]], label [[TMP5:%.*]], !prof [[PROF1]]
339- ; CHECK: 4:
340- ; CHECK-NEXT: call void @__msan_warning_noreturn()
341- ; CHECK-NEXT: unreachable
342- ; CHECK: 5:
336+ ; CHECK-NEXT: [[TMP3:%.*]] = icmp ne <4 x i64> [[TMP1]], zeroinitializer
337+ ; CHECK-NEXT: [[TMP5:%.*]] = sext <4 x i1> [[TMP3]] to <4 x i32>
343338; CHECK-NEXT: [[RES:%.*]] = call <4 x i32> @llvm.x86.avx.cvt.pd2dq.256(<4 x double> [[A0:%.*]])
344- ; CHECK-NEXT: store <4 x i32> zeroinitializer , ptr @__msan_retval_tls, align 8
339+ ; CHECK-NEXT: store <4 x i32> [[TMP5]] , ptr @__msan_retval_tls, align 8
345340; CHECK-NEXT: ret <4 x i32> [[RES]]
346341;
347342 %res = call <4 x i32 > @llvm.x86.avx.cvt.pd2dq.256 (<4 x double > %a0 ) ; <<4 x i32>> [#uses=1]
@@ -355,15 +350,10 @@ define <8 x i32> @test_x86_avx_cvt_ps2dq_256(<8 x float> %a0) #0 {
355350; CHECK-NEXT: [[TMP1:%.*]] = load <8 x i32>, ptr @__msan_param_tls, align 8
356351; CHECK-NEXT: [[TMP4:%.*]] = load i64, ptr @__msan_va_arg_overflow_size_tls, align 8
357352; CHECK-NEXT: call void @llvm.donothing()
358- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast <8 x i32> [[TMP1]] to i256
359- ; CHECK-NEXT: [[_MSCMP:%.*]] = icmp ne i256 [[TMP2]], 0
360- ; CHECK-NEXT: br i1 [[_MSCMP]], label [[TMP6:%.*]], label [[TMP5:%.*]], !prof [[PROF1]]
361- ; CHECK: 4:
362- ; CHECK-NEXT: call void @__msan_warning_noreturn()
363- ; CHECK-NEXT: unreachable
364- ; CHECK: 5:
353+ ; CHECK-NEXT: [[TMP3:%.*]] = icmp ne <8 x i32> [[TMP1]], zeroinitializer
354+ ; CHECK-NEXT: [[TMP5:%.*]] = sext <8 x i1> [[TMP3]] to <8 x i32>
365355; CHECK-NEXT: [[RES:%.*]] = call <8 x i32> @llvm.x86.avx.cvt.ps2dq.256(<8 x float> [[A0:%.*]])
366- ; CHECK-NEXT: store <8 x i32> zeroinitializer , ptr @__msan_retval_tls, align 8
356+ ; CHECK-NEXT: store <8 x i32> [[TMP5]] , ptr @__msan_retval_tls, align 8
367357; CHECK-NEXT: ret <8 x i32> [[RES]]
368358;
369359 %res = call <8 x i32 > @llvm.x86.avx.cvt.ps2dq.256 (<8 x float > %a0 ) ; <<8 x i32>> [#uses=1]
@@ -377,15 +367,10 @@ define <4 x i32> @test_x86_avx_cvtt_pd2dq_256(<4 x double> %a0) #0 {
377367; CHECK-NEXT: [[TMP1:%.*]] = load <4 x i64>, ptr @__msan_param_tls, align 8
378368; CHECK-NEXT: [[TMP4:%.*]] = load i64, ptr @__msan_va_arg_overflow_size_tls, align 8
379369; CHECK-NEXT: call void @llvm.donothing()
380- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast <4 x i64> [[TMP1]] to i256
381- ; CHECK-NEXT: [[_MSCMP:%.*]] = icmp ne i256 [[TMP2]], 0
382- ; CHECK-NEXT: br i1 [[_MSCMP]], label [[TMP6:%.*]], label [[TMP5:%.*]], !prof [[PROF1]]
383- ; CHECK: 4:
384- ; CHECK-NEXT: call void @__msan_warning_noreturn()
385- ; CHECK-NEXT: unreachable
386- ; CHECK: 5:
370+ ; CHECK-NEXT: [[TMP3:%.*]] = icmp ne <4 x i64> [[TMP1]], zeroinitializer
371+ ; CHECK-NEXT: [[TMP5:%.*]] = sext <4 x i1> [[TMP3]] to <4 x i32>
387372; CHECK-NEXT: [[RES:%.*]] = call <4 x i32> @llvm.x86.avx.cvtt.pd2dq.256(<4 x double> [[A0:%.*]])
388- ; CHECK-NEXT: store <4 x i32> zeroinitializer , ptr @__msan_retval_tls, align 8
373+ ; CHECK-NEXT: store <4 x i32> [[TMP5]] , ptr @__msan_retval_tls, align 8
389374; CHECK-NEXT: ret <4 x i32> [[RES]]
390375;
391376 %res = call <4 x i32 > @llvm.x86.avx.cvtt.pd2dq.256 (<4 x double > %a0 ) ; <<4 x i32>> [#uses=1]
@@ -399,15 +384,10 @@ define <8 x i32> @test_x86_avx_cvtt_ps2dq_256(<8 x float> %a0) #0 {
399384; CHECK-NEXT: [[TMP1:%.*]] = load <8 x i32>, ptr @__msan_param_tls, align 8
400385; CHECK-NEXT: [[TMP4:%.*]] = load i64, ptr @__msan_va_arg_overflow_size_tls, align 8
401386; CHECK-NEXT: call void @llvm.donothing()
402- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast <8 x i32> [[TMP1]] to i256
403- ; CHECK-NEXT: [[_MSCMP:%.*]] = icmp ne i256 [[TMP2]], 0
404- ; CHECK-NEXT: br i1 [[_MSCMP]], label [[TMP6:%.*]], label [[TMP5:%.*]], !prof [[PROF1]]
405- ; CHECK: 4:
406- ; CHECK-NEXT: call void @__msan_warning_noreturn()
407- ; CHECK-NEXT: unreachable
408- ; CHECK: 5:
387+ ; CHECK-NEXT: [[TMP3:%.*]] = icmp ne <8 x i32> [[TMP1]], zeroinitializer
388+ ; CHECK-NEXT: [[TMP5:%.*]] = sext <8 x i1> [[TMP3]] to <8 x i32>
409389; CHECK-NEXT: [[RES:%.*]] = call <8 x i32> @llvm.x86.avx.cvtt.ps2dq.256(<8 x float> [[A0:%.*]])
410- ; CHECK-NEXT: store <8 x i32> zeroinitializer , ptr @__msan_retval_tls, align 8
390+ ; CHECK-NEXT: store <8 x i32> [[TMP5]] , ptr @__msan_retval_tls, align 8
411391; CHECK-NEXT: ret <8 x i32> [[RES]]
412392;
413393 %res = call <8 x i32 > @llvm.x86.avx.cvtt.ps2dq.256 (<8 x float > %a0 ) ; <<8 x i32>> [#uses=1]
0 commit comments