Convert another llc -filetype=obj test.
authorRafael Espindola <rafael.espindola@gmail.com>
Mon, 28 Oct 2013 21:06:12 +0000 (21:06 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Mon, 28 Oct 2013 21:06:12 +0000 (21:06 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193538 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/AArch64/inline-asm-modifiers.ll
test/MC/AArch64/inline-asm-modifiers.s [new file with mode: 0644]

index d1b21f8c8b965b2981f8a7ea3d9b19dccfc4de75..d0b158f1f2ec8a1e5425251997368bd79d81ffd1 100644 (file)
@@ -1,5 +1,4 @@
 ; RUN: llc -mtriple=aarch64-none-linux-gnu -relocation-model=pic < %s | FileCheck %s
-; RUN: llc -mtriple=aarch64-none-linux-gnu -relocation-model=pic -filetype=obj < %s | llvm-objdump -r - | FileCheck --check-prefix=CHECK-ELF %s
 
 @var_simple = hidden global i32 0
 @var_got = global i32 0
@@ -23,13 +22,6 @@ define void @test_inline_modifier_L() nounwind {
 ; CHECK: ldr x0, [x0, #:gottprel_lo12:var_tlsie]
 ; CHECK: add x0, x0, #:tprel_lo12:var_tlsle
 
-; CHECK-ELF: R_AARCH64_ADD_ABS_LO12_NC var_simple
-; CHECK-ELF: R_AARCH64_LD64_GOT_LO12_NC var_got
-; CHECK-ELF: R_AARCH64_TLSDESC_ADD_LO12_NC var_tlsgd
-; CHECK-ELF: R_AARCH64_TLSLD_ADD_DTPREL_LO12 var_tlsld
-; CHECK-ELF: R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC var_tlsie
-; CHECK-ELF: R_AARCH64_TLSLE_ADD_TPREL_LO12 var_tlsle
-
   ret void
 }
 
@@ -40,9 +32,6 @@ define void @test_inline_modifier_G() nounwind {
 ; CHECK: add x0, x0, #:dtprel_hi12:var_tlsld, lsl #12
 ; CHECK: add x0, x0, #:tprel_hi12:var_tlsle, lsl #12
 
-; CHECK-ELF: R_AARCH64_TLSLD_ADD_DTPREL_HI12 var_tlsld
-; CHECK-ELF: R_AARCH64_TLSLE_ADD_TPREL_HI12 var_tlsle
-
   ret void
 }
 
@@ -58,11 +47,6 @@ define void @test_inline_modifier_A() nounwind {
 ; CHECK: adrp x0, :tlsdesc:var_tlsgd
 ; CHECK: adrp x0, :gottprel:var_tlsie
 
-; CHECK-ELF: R_AARCH64_ADR_PREL_PG_HI21 var_simple
-; CHECK-ELF: R_AARCH64_ADR_GOT_PAGE var_got
-; CHECK-ELF: R_AARCH64_TLSDESC_ADR_PAGE var_tlsgd
-; CHECK-ELF: R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 var_tlsie
-
   ret void
 }
 
diff --git a/test/MC/AArch64/inline-asm-modifiers.s b/test/MC/AArch64/inline-asm-modifiers.s
new file mode 100644 (file)
index 0000000..caeb617
--- /dev/null
@@ -0,0 +1,209 @@
+// RUN: llvm-mc -triple=aarch64-none-linux-gnu -filetype=obj < %s | llvm-objdump -r - | FileCheck %s
+
+       .file   "<stdin>"
+       .text
+       .globl  test_inline_modifier_L
+       .type   test_inline_modifier_L,@function
+test_inline_modifier_L:                 // @test_inline_modifier_L
+// BB#0:
+       //APP
+       add x0, x0, #:lo12:var_simple
+       //NO_APP
+       //APP
+       ldr x0, [x0, #:got_lo12:var_got]
+       //NO_APP
+       //APP
+       add x0, x0, #:tlsdesc_lo12:var_tlsgd
+       //NO_APP
+       //APP
+       add x0, x0, #:dtprel_lo12:var_tlsld
+       //NO_APP
+       //APP
+       ldr x0, [x0, #:gottprel_lo12:var_tlsie]
+       //NO_APP
+       //APP
+       add x0, x0, #:tprel_lo12:var_tlsle
+       //NO_APP
+       ret
+.Ltmp0:
+       .size   test_inline_modifier_L, .Ltmp0-test_inline_modifier_L
+
+// CHECK: R_AARCH64_ADD_ABS_LO12_NC var_simple
+// CHECK: R_AARCH64_LD64_GOT_LO12_NC var_got
+// CHECK: R_AARCH64_TLSDESC_ADD_LO12_NC var_tlsgd
+// CHECK: R_AARCH64_TLSLD_ADD_DTPREL_LO12 var_tlsld
+// CHECK: R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC var_tlsie
+// CHECK: R_AARCH64_TLSLE_ADD_TPREL_LO12 var_tlsle
+
+       .globl  test_inline_modifier_G
+       .type   test_inline_modifier_G,@function
+test_inline_modifier_G:                 // @test_inline_modifier_G
+// BB#0:
+       //APP
+       add x0, x0, #:dtprel_hi12:var_tlsld, lsl #12
+       //NO_APP
+       //APP
+       add x0, x0, #:tprel_hi12:var_tlsle, lsl #12
+       //NO_APP
+       ret
+.Ltmp1:
+       .size   test_inline_modifier_G, .Ltmp1-test_inline_modifier_G
+
+// CHECK: R_AARCH64_TLSLD_ADD_DTPREL_HI12 var_tlsld
+// CHECK: R_AARCH64_TLSLE_ADD_TPREL_HI12 var_tlsle
+
+       .globl  test_inline_modifier_A
+       .type   test_inline_modifier_A,@function
+test_inline_modifier_A:                 // @test_inline_modifier_A
+// BB#0:
+       //APP
+       adrp x0, var_simple
+       //NO_APP
+       //APP
+       adrp x0, :got:var_got
+       //NO_APP
+       //APP
+       adrp x0, :tlsdesc:var_tlsgd
+       //NO_APP
+       //APP
+       adrp x0, :gottprel:var_tlsie
+       //NO_APP
+       ret
+.Ltmp2:
+       .size   test_inline_modifier_A, .Ltmp2-test_inline_modifier_A
+// CHECK: R_AARCH64_ADR_PREL_PG_HI21 var_simple
+// CHECK: R_AARCH64_ADR_GOT_PAGE var_got
+// CHECK: R_AARCH64_TLSDESC_ADR_PAGE var_tlsgd
+// CHECK: R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 var_tlsie
+
+       .globl  test_inline_modifier_wx
+       .type   test_inline_modifier_wx,@function
+test_inline_modifier_wx:                // @test_inline_modifier_wx
+// BB#0:
+       mov      w2, w0
+       //APP
+       add w2, w2, w2
+       //NO_APP
+       mov      w2, w0
+       //APP
+       add w2, w2, w2
+       //NO_APP
+       //APP
+       add x0, x0, x0
+       //NO_APP
+       mov      x0, x1
+       //APP
+       add x0, x0, x0
+       //NO_APP
+       mov      x0, x1
+       //APP
+       add w0, w0, w0
+       //NO_APP
+       //APP
+       add x1, x1, x1
+       //NO_APP
+       //APP
+       add w0, wzr, wzr
+       //NO_APP
+       //APP
+       add x0, xzr, xzr
+       //NO_APP
+       ret
+.Ltmp3:
+       .size   test_inline_modifier_wx, .Ltmp3-test_inline_modifier_wx
+
+       .globl  test_inline_modifier_bhsdq
+       .type   test_inline_modifier_bhsdq,@function
+test_inline_modifier_bhsdq:             // @test_inline_modifier_bhsdq
+// BB#0:
+       //APP
+       ldr b0, [sp]
+       //NO_APP
+       //APP
+       ldr h0, [sp]
+       //NO_APP
+       //APP
+       ldr s0, [sp]
+       //NO_APP
+       //APP
+       ldr d0, [sp]
+       //NO_APP
+       //APP
+       ldr q0, [sp]
+       //NO_APP
+       //APP
+       ldr b0, [sp]
+       //NO_APP
+       //APP
+       ldr h0, [sp]
+       //NO_APP
+       //APP
+       ldr s0, [sp]
+       //NO_APP
+       //APP
+       ldr d0, [sp]
+       //NO_APP
+       //APP
+       ldr q0, [sp]
+       //NO_APP
+       ret
+.Ltmp4:
+       .size   test_inline_modifier_bhsdq, .Ltmp4-test_inline_modifier_bhsdq
+
+       .globl  test_inline_modifier_c
+       .type   test_inline_modifier_c,@function
+test_inline_modifier_c:                 // @test_inline_modifier_c
+// BB#0:
+       //APP
+       adr x0, 3
+       //NO_APP
+       ret
+.Ltmp5:
+       .size   test_inline_modifier_c, .Ltmp5-test_inline_modifier_c
+
+       .hidden var_simple              // @var_simple
+       .type   var_simple,@object
+       .bss
+       .globl  var_simple
+       .align  2
+var_simple:
+       .word   0                       // 0x0
+       .size   var_simple, 4
+
+       .type   var_got,@object         // @var_got
+       .globl  var_got
+       .align  2
+var_got:
+       .word   0                       // 0x0
+       .size   var_got, 4
+
+       .type   var_tlsgd,@object       // @var_tlsgd
+       .section        .tbss,"awT",@nobits
+       .globl  var_tlsgd
+       .align  2
+var_tlsgd:
+       .word   0                       // 0x0
+       .size   var_tlsgd, 4
+
+       .type   var_tlsld,@object       // @var_tlsld
+       .globl  var_tlsld
+       .align  2
+var_tlsld:
+       .word   0                       // 0x0
+       .size   var_tlsld, 4
+
+       .type   var_tlsie,@object       // @var_tlsie
+       .globl  var_tlsie
+       .align  2
+var_tlsie:
+       .word   0                       // 0x0
+       .size   var_tlsie, 4
+
+       .type   var_tlsle,@object       // @var_tlsle
+       .globl  var_tlsle
+       .align  2
+var_tlsle:
+       .word   0                       // 0x0
+       .size   var_tlsle, 4
+
+