@@ -284,6 +284,16 @@ define i27 @load_after_memset_0_non_byte_sized(ptr %a) {
284284 ret i27 %v
285285}
286286
287+ define i1 @load_after_memset_0_i1 (ptr %a ) {
288+ ; CHECK-LABEL: @load_after_memset_0_i1(
289+ ; CHECK-NEXT: call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(16) [[A:%.*]], i8 0, i64 16, i1 false)
290+ ; CHECK-NEXT: ret i1 false
291+ ;
292+ call void @llvm.memset.p0.i64 (ptr %a , i8 0 , i64 16 , i1 false )
293+ %v = load i1 , ptr %a
294+ ret i1 %v
295+ }
296+
287297define <4 x i8 > @load_after_memset_0_vec (ptr %a ) {
288298; CHECK-LABEL: @load_after_memset_0_vec(
289299; CHECK-NEXT: call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(16) [[A:%.*]], i8 0, i64 16, i1 false)
@@ -324,6 +334,16 @@ define i27 @load_after_memset_1_non_byte_sized(ptr %a) {
324334 ret i27 %v
325335}
326336
337+ define i1 @load_after_memset_1_i1 (ptr %a ) {
338+ ; CHECK-LABEL: @load_after_memset_1_i1(
339+ ; CHECK-NEXT: call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(16) [[A:%.*]], i8 1, i64 16, i1 false)
340+ ; CHECK-NEXT: ret i1 true
341+ ;
342+ call void @llvm.memset.p0.i64 (ptr %a , i8 1 , i64 16 , i1 false )
343+ %v = load i1 , ptr %a
344+ ret i1 %v
345+ }
346+
327347define <4 x i8 > @load_after_memset_1_vec (ptr %a ) {
328348; CHECK-LABEL: @load_after_memset_1_vec(
329349; CHECK-NEXT: call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(16) [[A:%.*]], i8 1, i64 16, i1 false)
0 commit comments