[Reland][Runtimes] Merge 'compile_commands.json' files from runtimes build (#116303)
[llvm-project.git] / llvm / test / CodeGen / X86 / asm-modifier.ll
blob9a69402d2216892ac5d12661a470983bde9a5159
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
2 ; RUN: llc -mtriple=i686 < %s | FileCheck %s --check-prefixes=CHECK,X86
3 ; RUN: llc -mtriple=x86_64 < %s | FileCheck %s --check-prefixes=CHECK,X64
5 @var = internal global i32 0, align 4
7 define dso_local void @test_c() nounwind {
8 ; CHECK-LABEL: test_c:
9 ; CHECK:       # %bb.0:
10 ; CHECK-NEXT:    #APP
11 ; CHECK-NEXT:    #TEST 42
12 ; CHECK-NEXT:    #NO_APP
13 ; CHECK-NEXT:    #APP
14 ; CHECK-NEXT:    #TEST var
15 ; CHECK-NEXT:    #NO_APP
16 ; CHECK-NEXT:    ret{{[l|q]}}
17   tail call void asm sideeffect "#TEST ${0:c}", "i"(i32 42)
18   tail call void asm sideeffect "#TEST ${0:c}", "i"(ptr nonnull @var)
19   ret void
22 define dso_local void @test_n() nounwind {
23 ; CHECK-LABEL: test_n:
24 ; CHECK:       # %bb.0:
25 ; CHECK-NEXT:    #APP
26 ; CHECK-NEXT:    #TEST 37
27 ; CHECK-NEXT:    #NO_APP
28 ; CHECK-NEXT:    ret{{[l|q]}}
29   tail call void asm sideeffect "#TEST ${0:n}", "i"(i32 -37)
30   ret void
33 define void @test_q() {
34 ; CHECK-LABEL: test_q:
35 ; CHECK:       # %bb.0: # %entry
36 ; CHECK-NEXT:    #APP
37 ; CHECK-NEXT:    #TEST 0
38 ; CHECK-NEXT:    #NO_APP
39 ; CHECK-NEXT:    ret{{[l|q]}}
40 entry:
41   call void asm sideeffect "#TEST ${0:q}", "=*imr"( ptr elementtype( i64) null )
42   ret void
45 define void @test_V(ptr %p) {
46 ; X86-LABEL: test_V:
47 ; X86:       # %bb.0: # %entry
48 ; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
49 ; X86-NEXT:    #APP
50 ; X86-NEXT:    calll __x86_indirect_thunk_eax
51 ; X86-NEXT:    #NO_APP
52 ; X86-NEXT:    retl
54 ; X64-LABEL: test_V:
55 ; X64:       # %bb.0: # %entry
56 ; X64-NEXT:    #APP
57 ; X64-NEXT:    callq __x86_indirect_thunk_rdi
58 ; X64-NEXT:    #NO_APP
59 ; X64-NEXT:    retq
60 entry:
61   tail call void asm sideeffect "call __x86_indirect_thunk_${0:V}", "r,~{dirflag},~{fpsr},~{flags}"(ptr %p)
62   ret void