[llvm] 862e5dc - [X86] Pre-commit test for lowerAtomicArith

Nabeel Omer via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 10 07:21:42 PDT 2023


Author: Nabeel Omer
Date: 2023-07-10T14:21:20Z
New Revision: 862e5dcb7e590eb2d22dbea5affa0e124172d5ca

URL: https://github.com/llvm/llvm-project/commit/862e5dcb7e590eb2d22dbea5affa0e124172d5ca
DIFF: https://github.com/llvm/llvm-project/commit/862e5dcb7e590eb2d22dbea5affa0e124172d5ca.diff

LOG: [X86] Pre-commit test for lowerAtomicArith

Test for https://reviews.llvm.org/D154609

Added: 
    llvm/test/CodeGen/X86/pr63692.ll

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/X86/pr63692.ll b/llvm/test/CodeGen/X86/pr63692.ll
new file mode 100644
index 00000000000000..30e13043643102
--- /dev/null
+++ b/llvm/test/CodeGen/X86/pr63692.ll
@@ -0,0 +1,31 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 3
+; RUN: llc < %s -mtriple=x86_64-- | FileCheck %s
+
+define void @prefault(ptr noundef %range_start, ptr noundef readnone %range_end) {
+; CHECK-LABEL: prefault:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    cmpq %rsi, %rdi
+; CHECK-NEXT:    jae .LBB0_3
+; CHECK-NEXT:    .p2align 4, 0x90
+; CHECK-NEXT:  .LBB0_1: # %while.body
+; CHECK-NEXT:    # =>This Inner Loop Header: Depth=1
+; CHECK-NEXT:    #MEMBARRIER
+; CHECK-NEXT:    addq $4096, %rdi # imm = 0x1000
+; CHECK-NEXT:    cmpq %rsi, %rdi
+; CHECK-NEXT:    jb .LBB0_1
+; CHECK-NEXT:  .LBB0_3: # %while.end
+; CHECK-NEXT:    retq
+entry:
+  %cmp3 = icmp ult ptr %range_start, %range_end
+  br i1 %cmp3, label %while.body, label %while.end
+
+while.body:                                       ; preds = %entry, %while.body
+  %start.04 = phi ptr [ %add.ptr, %while.body ], [ %range_start, %entry ]
+  %0 = atomicrmw volatile or ptr %start.04, i8 0 monotonic, align 1
+  %add.ptr = getelementptr inbounds i8, ptr %start.04, i64 4096
+  %cmp = icmp ult ptr %add.ptr, %range_end
+  br i1 %cmp, label %while.body, label %while.end
+
+while.end:                                        ; preds = %while.body, %entry
+  ret void
+}


        


More information about the llvm-commits mailing list