@@ -38,21 +38,21 @@ declare <8 x float> @llvm.x86.avx.addsub.ps.256(<8 x float>, <8 x float>) nounwi
3838
3939define <4 x double > @test_x86_avx_blendv_pd_256 (<4 x double > %a0 , <4 x double > %a1 , <4 x double > %a2 ) #0 {
4040; CHECK-LABEL: @test_x86_avx_blendv_pd_256(
41- ; CHECK-NEXT: [[TMP1 :%.*]] = load <4 x i64>, ptr inttoptr (i64 add (i64 ptrtoint (ptr @__msan_param_tls to i64), i64 64) to ptr), align 8
41+ ; CHECK-NEXT: [[TMP4 :%.*]] = load <4 x i64>, ptr inttoptr (i64 add (i64 ptrtoint (ptr @__msan_param_tls to i64), i64 64) to ptr), align 8
4242; CHECK-NEXT: [[TMP2:%.*]] = load <4 x i64>, ptr inttoptr (i64 add (i64 ptrtoint (ptr @__msan_param_tls to i64), i64 32) to ptr), align 8
43- ; CHECK-NEXT: [[TMP3 :%.*]] = load <4 x i64>, ptr @__msan_param_tls, align 8
43+ ; CHECK-NEXT: [[TMP12 :%.*]] = load <4 x i64>, ptr @__msan_param_tls, align 8
4444; CHECK-NEXT: call void @llvm.donothing()
45- ; CHECK-NEXT: [[TMP4 :%.*]] = bitcast <4 x double> [[A2:%.*]] to <4 x i64>
46- ; CHECK-NEXT: [[TMP5:%.*]] = ashr <4 x i64> [[TMP4 ]], splat ( i64 63)
45+ ; CHECK-NEXT: [[TMP13 :%.*]] = bitcast <4 x double> [[A2:%.*]] to <4 x i64>
46+ ; CHECK-NEXT: [[TMP5:%.*]] = ashr <4 x i64> [[TMP13 ]], <i64 63, i64 63, i64 63, i64 63>
4747; CHECK-NEXT: [[TMP6:%.*]] = trunc <4 x i64> [[TMP5]] to <4 x i1>
48- ; CHECK-NEXT: [[TMP7:%.*]] = ashr <4 x i64> [[TMP1 ]], splat ( i64 63)
48+ ; CHECK-NEXT: [[TMP7:%.*]] = ashr <4 x i64> [[TMP4 ]], <i64 63, i64 63, i64 63, i64 63>
4949; CHECK-NEXT: [[TMP8:%.*]] = trunc <4 x i64> [[TMP7]] to <4 x i1>
50- ; CHECK-NEXT: [[TMP9:%.*]] = select <4 x i1> [[TMP6]], <4 x i64> [[TMP2]], <4 x i64> [[TMP3 ]]
50+ ; CHECK-NEXT: [[TMP9:%.*]] = select <4 x i1> [[TMP6]], <4 x i64> [[TMP2]], <4 x i64> [[TMP12 ]]
5151; CHECK-NEXT: [[TMP10:%.*]] = bitcast <4 x double> [[A1:%.*]] to <4 x i64>
5252; CHECK-NEXT: [[TMP11:%.*]] = bitcast <4 x double> [[A0:%.*]] to <4 x i64>
53- ; CHECK-NEXT: [[TMP12 :%.*]] = xor <4 x i64> [[TMP10]], [[TMP11]]
54- ; CHECK-NEXT: [[TMP13 :%.*]] = or <4 x i64> [[TMP12 ]], [[TMP2]]
55- ; CHECK-NEXT: [[TMP14:%.*]] = or <4 x i64> [[TMP13 ]], [[TMP3 ]]
53+ ; CHECK-NEXT: [[TMP3 :%.*]] = xor <4 x i64> [[TMP10]], [[TMP11]]
54+ ; CHECK-NEXT: [[_MSPROP :%.*]] = or <4 x i64> [[TMP3 ]], [[TMP2]]
55+ ; CHECK-NEXT: [[TMP14:%.*]] = or <4 x i64> [[_MSPROP ]], [[TMP12 ]]
5656; CHECK-NEXT: [[_MSPROP_SELECT:%.*]] = select <4 x i1> [[TMP8]], <4 x i64> [[TMP14]], <4 x i64> [[TMP9]]
5757; CHECK-NEXT: [[RES:%.*]] = call <4 x double> @llvm.x86.avx.blendv.pd.256(<4 x double> [[A0]], <4 x double> [[A1]], <4 x double> [[A2]])
5858; CHECK-NEXT: store <4 x i64> [[_MSPROP_SELECT]], ptr @__msan_retval_tls, align 8
@@ -66,21 +66,21 @@ declare <4 x double> @llvm.x86.avx.blendv.pd.256(<4 x double>, <4 x double>, <4
6666
6767define <8 x float > @test_x86_avx_blendv_ps_256 (<8 x float > %a0 , <8 x float > %a1 , <8 x float > %a2 ) #0 {
6868; CHECK-LABEL: @test_x86_avx_blendv_ps_256(
69- ; CHECK-NEXT: [[TMP1 :%.*]] = load <8 x i32>, ptr inttoptr (i64 add (i64 ptrtoint (ptr @__msan_param_tls to i64), i64 64) to ptr), align 8
69+ ; CHECK-NEXT: [[TMP4 :%.*]] = load <8 x i32>, ptr inttoptr (i64 add (i64 ptrtoint (ptr @__msan_param_tls to i64), i64 64) to ptr), align 8
7070; CHECK-NEXT: [[TMP2:%.*]] = load <8 x i32>, ptr inttoptr (i64 add (i64 ptrtoint (ptr @__msan_param_tls to i64), i64 32) to ptr), align 8
71- ; CHECK-NEXT: [[TMP3 :%.*]] = load <8 x i32>, ptr @__msan_param_tls, align 8
71+ ; CHECK-NEXT: [[TMP12 :%.*]] = load <8 x i32>, ptr @__msan_param_tls, align 8
7272; CHECK-NEXT: call void @llvm.donothing()
73- ; CHECK-NEXT: [[TMP4 :%.*]] = bitcast <8 x float> [[A2:%.*]] to <8 x i32>
74- ; CHECK-NEXT: [[TMP5:%.*]] = ashr <8 x i32> [[TMP4 ]], splat ( i32 31)
73+ ; CHECK-NEXT: [[TMP13 :%.*]] = bitcast <8 x float> [[A2:%.*]] to <8 x i32>
74+ ; CHECK-NEXT: [[TMP5:%.*]] = ashr <8 x i32> [[TMP13 ]], <i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31>
7575; CHECK-NEXT: [[TMP6:%.*]] = trunc <8 x i32> [[TMP5]] to <8 x i1>
76- ; CHECK-NEXT: [[TMP7:%.*]] = ashr <8 x i32> [[TMP1 ]], splat ( i32 31)
76+ ; CHECK-NEXT: [[TMP7:%.*]] = ashr <8 x i32> [[TMP4 ]], <i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31>
7777; CHECK-NEXT: [[TMP8:%.*]] = trunc <8 x i32> [[TMP7]] to <8 x i1>
78- ; CHECK-NEXT: [[TMP9:%.*]] = select <8 x i1> [[TMP6]], <8 x i32> [[TMP2]], <8 x i32> [[TMP3 ]]
78+ ; CHECK-NEXT: [[TMP9:%.*]] = select <8 x i1> [[TMP6]], <8 x i32> [[TMP2]], <8 x i32> [[TMP12 ]]
7979; CHECK-NEXT: [[TMP10:%.*]] = bitcast <8 x float> [[A1:%.*]] to <8 x i32>
8080; CHECK-NEXT: [[TMP11:%.*]] = bitcast <8 x float> [[A0:%.*]] to <8 x i32>
81- ; CHECK-NEXT: [[TMP12 :%.*]] = xor <8 x i32> [[TMP10]], [[TMP11]]
82- ; CHECK-NEXT: [[TMP13 :%.*]] = or <8 x i32> [[TMP12 ]], [[TMP2]]
83- ; CHECK-NEXT: [[TMP14:%.*]] = or <8 x i32> [[TMP13 ]], [[TMP3 ]]
81+ ; CHECK-NEXT: [[TMP3 :%.*]] = xor <8 x i32> [[TMP10]], [[TMP11]]
82+ ; CHECK-NEXT: [[_MSPROP :%.*]] = or <8 x i32> [[TMP3 ]], [[TMP2]]
83+ ; CHECK-NEXT: [[TMP14:%.*]] = or <8 x i32> [[_MSPROP ]], [[TMP12 ]]
8484; CHECK-NEXT: [[_MSPROP_SELECT:%.*]] = select <8 x i1> [[TMP8]], <8 x i32> [[TMP14]], <8 x i32> [[TMP9]]
8585; CHECK-NEXT: [[RES:%.*]] = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> [[A0]], <8 x float> [[A1]], <8 x float> [[A2]])
8686; CHECK-NEXT: store <8 x i32> [[_MSPROP_SELECT]], ptr @__msan_retval_tls, align 8
@@ -499,7 +499,7 @@ define <32 x i8> @test_x86_avx_ldu_dq_256(ptr %a0) #0 {
499499; CHECK-NEXT: [[TMP1:%.*]] = load i64, ptr @__msan_param_tls, align 8
500500; CHECK-NEXT: call void @llvm.donothing()
501501; CHECK-NEXT: [[TMP2:%.*]] = ptrtoint ptr [[A0:%.*]] to i64
502- ; CHECK-NEXT: [[TMP3:%.*]] = xor i64 [[TMP2]], 87960930222080
502+ ; CHECK-NEXT: [[TMP3:%.*]] = and i64 [[TMP2]], -2147483649
503503; CHECK-NEXT: [[TMP4:%.*]] = inttoptr i64 [[TMP3]] to ptr
504504; CHECK-NEXT: [[_MSLD:%.*]] = load <32 x i8>, ptr [[TMP4]], align 1
505505; CHECK-NEXT: [[_MSCMP:%.*]] = icmp ne i64 [[TMP1]], 0
@@ -1057,7 +1057,7 @@ define <4 x float> @test_x86_avx_vpermilvar_ps_load(<4 x float> %a0, ptr %a1) #0
10571057; CHECK: 4:
10581058; CHECK-NEXT: [[A2:%.*]] = load <4 x i32>, ptr [[A1:%.*]], align 16
10591059; CHECK-NEXT: [[TMP5:%.*]] = ptrtoint ptr [[A1]] to i64
1060- ; CHECK-NEXT: [[TMP6:%.*]] = xor i64 [[TMP5]], 87960930222080
1060+ ; CHECK-NEXT: [[TMP6:%.*]] = and i64 [[TMP5]], -2147483649
10611061; CHECK-NEXT: [[TMP7:%.*]] = inttoptr i64 [[TMP6]] to ptr
10621062; CHECK-NEXT: [[_MSLD:%.*]] = load <4 x i32>, ptr [[TMP7]], align 16
10631063; CHECK-NEXT: [[TMP8:%.*]] = bitcast <4 x i32> [[TMP2]] to i128
@@ -1363,8 +1363,8 @@ define void @movnt_dq(ptr %p, <2 x i64> %a1) nounwind #0 {
13631363; CHECK-NEXT: [[TMP2:%.*]] = load i64, ptr @__msan_param_tls, align 8
13641364; CHECK-NEXT: call void @llvm.donothing()
13651365; CHECK-NEXT: [[_MSPROP:%.*]] = or <2 x i64> [[TMP1]], zeroinitializer
1366- ; CHECK-NEXT: [[A2:%.*]] = add <2 x i64> [[A1:%.*]], splat ( i64 1)
1367- ; CHECK-NEXT: [[_MSPROP1:%.*]] = shufflevector <2 x i64> [[_MSPROP]], <2 x i64> splat ( i64 -1) , <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
1366+ ; CHECK-NEXT: [[A2:%.*]] = add <2 x i64> [[A1:%.*]], <i64 1, i64 1>
1367+ ; CHECK-NEXT: [[_MSPROP1:%.*]] = shufflevector <2 x i64> [[_MSPROP]], <2 x i64> <i64 -1, i64 -1> , <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
13681368; CHECK-NEXT: [[A3:%.*]] = shufflevector <2 x i64> [[A2]], <2 x i64> undef, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
13691369; CHECK-NEXT: [[_MSCMP:%.*]] = icmp ne i64 [[TMP2]], 0
13701370; CHECK-NEXT: br i1 [[_MSCMP]], label [[TMP3:%.*]], label [[TMP4:%.*]], !prof [[PROF1]]
@@ -1373,7 +1373,7 @@ define void @movnt_dq(ptr %p, <2 x i64> %a1) nounwind #0 {
13731373; CHECK-NEXT: unreachable
13741374; CHECK: 4:
13751375; CHECK-NEXT: [[TMP5:%.*]] = ptrtoint ptr [[P:%.*]] to i64
1376- ; CHECK-NEXT: [[TMP6:%.*]] = xor i64 [[TMP5]], 87960930222080
1376+ ; CHECK-NEXT: [[TMP6:%.*]] = and i64 [[TMP5]], -2147483649
13771377; CHECK-NEXT: [[TMP7:%.*]] = inttoptr i64 [[TMP6]] to ptr
13781378; CHECK-NEXT: store <4 x i64> [[_MSPROP1]], ptr [[TMP7]], align 32
13791379; CHECK-NEXT: store <4 x i64> [[A3]], ptr [[P]], align 32, !nontemporal [[META2:![0-9]+]]
@@ -1398,7 +1398,7 @@ define void @movnt_ps(ptr %p, <8 x float> %a) nounwind #0 {
13981398; CHECK-NEXT: unreachable
13991399; CHECK: 4:
14001400; CHECK-NEXT: [[TMP5:%.*]] = ptrtoint ptr [[P:%.*]] to i64
1401- ; CHECK-NEXT: [[TMP6:%.*]] = xor i64 [[TMP5]], 87960930222080
1401+ ; CHECK-NEXT: [[TMP6:%.*]] = and i64 [[TMP5]], -2147483649
14021402; CHECK-NEXT: [[TMP7:%.*]] = inttoptr i64 [[TMP6]] to ptr
14031403; CHECK-NEXT: store <8 x i32> [[TMP2]], ptr [[TMP7]], align 32
14041404; CHECK-NEXT: store <8 x float> [[A:%.*]], ptr [[P]], align 32, !nontemporal [[META2]]
@@ -1424,7 +1424,7 @@ define void @movnt_pd(ptr %p, <4 x double> %a1) nounwind #0 {
14241424; CHECK-NEXT: unreachable
14251425; CHECK: 4:
14261426; CHECK-NEXT: [[TMP5:%.*]] = ptrtoint ptr [[P:%.*]] to i64
1427- ; CHECK-NEXT: [[TMP6:%.*]] = xor i64 [[TMP5]], 87960930222080
1427+ ; CHECK-NEXT: [[TMP6:%.*]] = and i64 [[TMP5]], -2147483649
14281428; CHECK-NEXT: [[TMP7:%.*]] = inttoptr i64 [[TMP6]] to ptr
14291429; CHECK-NEXT: store <4 x i64> [[_MSPROP]], ptr [[TMP7]], align 32
14301430; CHECK-NEXT: store <4 x double> [[A2]], ptr [[P]], align 32, !nontemporal [[META2]]
0 commit comments