@@ -73,13 +73,30 @@ define <4 x i32> @test64(<4 x i32> %vec, i64 %idx, i32 %x) sanitize_memory {
7373; CHECK: call void @__msan_maybe_warning_8(i64 zeroext %{{.*}}, i32 zeroext 0)
7474; CHECK: ret <4 x i32>
7575
76- ; Type size too large => inline check .
76+ ; Type size too large => use variable-size handler .
7777define <4 x i32 > @test65 (<4 x i32 > %vec , i65 %idx , i32 %x ) sanitize_memory {
7878 %vec1 = insertelement <4 x i32 > %vec , i32 %x , i65 %idx
7979 ret <4 x i32 > %vec1
8080}
8181; CHECK-LABEL: @test65(
82- ; CHECK: call void @__msan_warning_noreturn
82+ ; CHECK: %[[A:.*]] = zext i65 %1 to i128
83+ ; CHECK: call void @__msan_maybe_warning_N(ptr %{{.*}}, i64 zeroext 16, i32 zeroext 0)
84+ ; CHECK: ret <4 x i32>
85+
86+ define <4 x i32 > @test128 (<4 x i32 > %vec , i128 %idx , i32 %x ) sanitize_memory {
87+ %vec1 = insertelement <4 x i32 > %vec , i32 %x , i128 %idx
88+ ret <4 x i32 > %vec1
89+ }
90+ ; CHECK-LABEL: @test128(
91+ ; CHECK: call void @__msan_maybe_warning_N(ptr %{{.*}}, i64 zeroext 16, i32 zeroext 0)
92+ ; CHECK: ret <4 x i32>
93+
94+ define <4 x i32 > @test256 (<4 x i32 > %vec , i256 %idx , i32 %x ) sanitize_memory {
95+ %vec1 = insertelement <4 x i32 > %vec , i32 %x , i256 %idx
96+ ret <4 x i32 > %vec1
97+ }
98+ ; CHECK-LABEL: @test256(
99+ ; CHECK: call void @__msan_maybe_warning_N(ptr %{{.*}}, i64 zeroext 32, i32 zeroext 0)
83100; CHECK: ret <4 x i32>
84101
85102define <4 x i32 > @testUndef (<4 x i32 > %vec , i32 %x ) sanitize_memory {
0 commit comments