[llvm] d307c77 - X86: Add asm modifier tests for 64-bit PIC

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Thu May 8 00:36:06 PDT 2025


Author: Fangrui Song
Date: 2025-05-08T00:35:59-07:00
New Revision: d307c774d0dd5062199f6d97b2184cb76e157542

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

LOG: X86: Add asm modifier tests for 64-bit PIC

Added: 
    llvm/test/CodeGen/X86/asm-modifier-pic.ll

Modified: 
    llvm/test/CodeGen/X86/asm-modifier.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/X86/asm-modifier-pic.ll b/llvm/test/CodeGen/X86/asm-modifier-pic.ll
new file mode 100644
index 0000000000000..a8d904fd96d9d
--- /dev/null
+++ b/llvm/test/CodeGen/X86/asm-modifier-pic.ll
@@ -0,0 +1,15 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
+; RUN: llc -mtriple=x86_64 -relocation-model=pic < %s | FileCheck %s
+
+ at var = internal global i32 0, align 4
+
+define dso_local void @test_a() nounwind {
+; CHECK-LABEL: test_a:
+; CHECK:       # %bb.0:
+; CHECK-NEXT:    #APP
+; CHECK-NEXT:    #TEST 42 var(%rip)#
+; CHECK-NEXT:    #NO_APP
+; CHECK-NEXT:    retq
+  tail call void asm sideeffect "#TEST ${0:a} ${1:a}#", "i,i"(i32 42, ptr @var)
+  ret void
+}

diff  --git a/llvm/test/CodeGen/X86/asm-modifier.ll b/llvm/test/CodeGen/X86/asm-modifier.ll
index 6bc800da04b48..e49e7d6b01964 100644
--- a/llvm/test/CodeGen/X86/asm-modifier.ll
+++ b/llvm/test/CodeGen/X86/asm-modifier.ll
@@ -1,6 +1,7 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
 ; RUN: llc -mtriple=i686 < %s | FileCheck %s --check-prefixes=CHECK,X86
 ; RUN: llc -mtriple=x86_64 < %s | FileCheck %s --check-prefixes=CHECK,X64
+;; Certain constraints should not be used for PIC. See asm-modifier-pic.ll for PIC-specific tests.
 
 @var = internal global i32 0, align 4
 
@@ -8,10 +9,10 @@ define dso_local void @test_a() nounwind {
 ; CHECK-LABEL: test_a:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    #APP
-; CHECK-NEXT:    #TEST var#
+; CHECK-NEXT:    #TEST 42 var#
 ; CHECK-NEXT:    #NO_APP
 ; CHECK-NEXT:    ret{{[l|q]}}
-  tail call void asm sideeffect "#TEST ${0:c}#", "i"(ptr nonnull @var)
+  tail call void asm sideeffect "#TEST ${0:a} ${1:a}#", "i,i"(i32 42, ptr @var)
   ret void
 }
 
@@ -19,14 +20,10 @@ define dso_local void @test_c() nounwind {
 ; CHECK-LABEL: test_c:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    #APP
-; CHECK-NEXT:    #TEST 42
-; CHECK-NEXT:    #NO_APP
-; CHECK-NEXT:    #APP
-; CHECK-NEXT:    #TEST var
+; CHECK-NEXT:    #TEST 42 var#
 ; CHECK-NEXT:    #NO_APP
 ; CHECK-NEXT:    ret{{[l|q]}}
-  tail call void asm sideeffect "#TEST ${0:c}", "i"(i32 42)
-  tail call void asm sideeffect "#TEST ${0:c}", "i"(ptr nonnull @var)
+  tail call void asm sideeffect "#TEST ${0:c} ${1:c}#", "i,i"(i32 42, ptr @var)
   ret void
 }
 
@@ -82,4 +79,3 @@ entry:
   tail call void asm sideeffect "call __x86_indirect_thunk_${0:V}", "r,~{dirflag},~{fpsr},~{flags}"(ptr %p)
   ret void
 }
-


        


More information about the llvm-commits mailing list