[llvm] 4f0ebe0 - [PreISelIntrinsicLowering][test] Test that the expanded memset.inline doesn't drop volatile flag

Alex Bradbury via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 10 06:06:30 PDT 2024


Author: Alex Bradbury
Date: 2024-07-10T14:06:18+01:00
New Revision: 4f0ebe01a415f293e36f8135c7bb84c0592c8be2

URL: https://github.com/llvm/llvm-project/commit/4f0ebe01a415f293e36f8135c7bb84c0592c8be2
DIFF: https://github.com/llvm/llvm-project/commit/4f0ebe01a415f293e36f8135c7bb84c0592c8be2.diff

LOG: [PreISelIntrinsicLowering][test] Test that the expanded memset.inline doesn't drop volatile flag

As suggested in the discussion for #98281.

Added: 
    

Modified: 
    llvm/test/Transforms/PreISelIntrinsicLowering/X86/memset-inline-non-constant-len.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/PreISelIntrinsicLowering/X86/memset-inline-non-constant-len.ll b/llvm/test/Transforms/PreISelIntrinsicLowering/X86/memset-inline-non-constant-len.ll
index c6677bc563d91..0843b1532f843 100644
--- a/llvm/test/Transforms/PreISelIntrinsicLowering/X86/memset-inline-non-constant-len.ll
+++ b/llvm/test/Transforms/PreISelIntrinsicLowering/X86/memset-inline-non-constant-len.ll
@@ -27,8 +27,19 @@ define void @memset_x(ptr %a, i8 %value, i64 %x) nounwind {
 ; CHECK-NEXT:    [[TMP5:%.*]] = icmp ult i64 [[TMP4]], [[X]]
 ; CHECK-NEXT:    br i1 [[TMP5]], label %[[LOADSTORELOOP]], label %[[SPLIT]]
 ; CHECK:       [[SPLIT]]:
+; CHECK-NEXT:    [[TMP6:%.*]] = icmp eq i64 0, [[X]]
+; CHECK-NEXT:    br i1 [[TMP6]], label %[[SPLIT1:.*]], label %[[LOADSTORELOOP2:.*]]
+; CHECK:       [[LOADSTORELOOP2]]:
+; CHECK-NEXT:    [[TMP7:%.*]] = phi i64 [ 0, %[[SPLIT]] ], [ [[TMP9:%.*]], %[[LOADSTORELOOP2]] ]
+; CHECK-NEXT:    [[TMP8:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[TMP7]]
+; CHECK-NEXT:    store volatile i8 [[VALUE]], ptr [[TMP8]], align 1
+; CHECK-NEXT:    [[TMP9]] = add i64 [[TMP7]], 1
+; CHECK-NEXT:    [[TMP10:%.*]] = icmp ult i64 [[TMP9]], [[X]]
+; CHECK-NEXT:    br i1 [[TMP10]], label %[[LOADSTORELOOP2]], label %[[SPLIT1]]
+; CHECK:       [[SPLIT1]]:
 ; CHECK-NEXT:    ret void
 ;
-  tail call void @llvm.memset.inline.p0.i64(ptr %a, i8 %value, i64 %x, i1 0)
+  call void @llvm.memset.inline.p0.i64(ptr %a, i8 %value, i64 %x, i1 0)
+  tail call void @llvm.memset.inline.p0.i64(ptr %a, i8 %value, i64 %x, i1 1)
   ret void
 }


        


More information about the llvm-commits mailing list