; 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
; 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
}
; 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
}
; 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
}
--- /dev/null
+// 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
+
+