[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