1c2884320feebc543d2ce51151d5418dfc18da9e4Amara Emerson// RUN: llvm-mc -triple=aarch64-none-linux-gnu -filetype=obj -mattr=+fp-armv8 < %s | llvm-objdump -r - | FileCheck %s
29540074467ca6af4098467261336edbe61f6deeaRafael Espindola
39540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.file	"<stdin>"
49540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.text
59540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.globl	test_inline_modifier_L
69540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.type	test_inline_modifier_L,@function
79540074467ca6af4098467261336edbe61f6deeaRafael Espindolatest_inline_modifier_L:                 // @test_inline_modifier_L
89540074467ca6af4098467261336edbe61f6deeaRafael Espindola// BB#0:
99540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
109540074467ca6af4098467261336edbe61f6deeaRafael Espindola	add x0, x0, #:lo12:var_simple
119540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
129540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
139540074467ca6af4098467261336edbe61f6deeaRafael Espindola	ldr x0, [x0, #:got_lo12:var_got]
149540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
159540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
169540074467ca6af4098467261336edbe61f6deeaRafael Espindola	add x0, x0, #:tlsdesc_lo12:var_tlsgd
179540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
189540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
199540074467ca6af4098467261336edbe61f6deeaRafael Espindola	add x0, x0, #:dtprel_lo12:var_tlsld
209540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
219540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
229540074467ca6af4098467261336edbe61f6deeaRafael Espindola	ldr x0, [x0, #:gottprel_lo12:var_tlsie]
239540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
249540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
259540074467ca6af4098467261336edbe61f6deeaRafael Espindola	add x0, x0, #:tprel_lo12:var_tlsle
269540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
279540074467ca6af4098467261336edbe61f6deeaRafael Espindola	ret
289540074467ca6af4098467261336edbe61f6deeaRafael Espindola.Ltmp0:
299540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.size	test_inline_modifier_L, .Ltmp0-test_inline_modifier_L
309540074467ca6af4098467261336edbe61f6deeaRafael Espindola
319540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_ADD_ABS_LO12_NC var_simple
329540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_LD64_GOT_LO12_NC var_got
339540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_TLSDESC_ADD_LO12_NC var_tlsgd
349540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_TLSLD_ADD_DTPREL_LO12 var_tlsld
359540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC var_tlsie
369540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_TLSLE_ADD_TPREL_LO12 var_tlsle
379540074467ca6af4098467261336edbe61f6deeaRafael Espindola
389540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.globl	test_inline_modifier_G
399540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.type	test_inline_modifier_G,@function
409540074467ca6af4098467261336edbe61f6deeaRafael Espindolatest_inline_modifier_G:                 // @test_inline_modifier_G
419540074467ca6af4098467261336edbe61f6deeaRafael Espindola// BB#0:
429540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
439540074467ca6af4098467261336edbe61f6deeaRafael Espindola	add x0, x0, #:dtprel_hi12:var_tlsld, lsl #12
449540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
459540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
469540074467ca6af4098467261336edbe61f6deeaRafael Espindola	add x0, x0, #:tprel_hi12:var_tlsle, lsl #12
479540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
489540074467ca6af4098467261336edbe61f6deeaRafael Espindola	ret
499540074467ca6af4098467261336edbe61f6deeaRafael Espindola.Ltmp1:
509540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.size	test_inline_modifier_G, .Ltmp1-test_inline_modifier_G
519540074467ca6af4098467261336edbe61f6deeaRafael Espindola
529540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_TLSLD_ADD_DTPREL_HI12 var_tlsld
539540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_TLSLE_ADD_TPREL_HI12 var_tlsle
549540074467ca6af4098467261336edbe61f6deeaRafael Espindola
559540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.globl	test_inline_modifier_A
569540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.type	test_inline_modifier_A,@function
579540074467ca6af4098467261336edbe61f6deeaRafael Espindolatest_inline_modifier_A:                 // @test_inline_modifier_A
589540074467ca6af4098467261336edbe61f6deeaRafael Espindola// BB#0:
599540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
609540074467ca6af4098467261336edbe61f6deeaRafael Espindola	adrp x0, var_simple
619540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
629540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
639540074467ca6af4098467261336edbe61f6deeaRafael Espindola	adrp x0, :got:var_got
649540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
659540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
669540074467ca6af4098467261336edbe61f6deeaRafael Espindola	adrp x0, :tlsdesc:var_tlsgd
679540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
689540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
699540074467ca6af4098467261336edbe61f6deeaRafael Espindola	adrp x0, :gottprel:var_tlsie
709540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
719540074467ca6af4098467261336edbe61f6deeaRafael Espindola	ret
729540074467ca6af4098467261336edbe61f6deeaRafael Espindola.Ltmp2:
739540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.size	test_inline_modifier_A, .Ltmp2-test_inline_modifier_A
749540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_ADR_PREL_PG_HI21 var_simple
759540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_ADR_GOT_PAGE var_got
76ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines// CHECK: R_AARCH64_TLSDESC_ADR_PAGE21 var_tlsgd
779540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 var_tlsie
789540074467ca6af4098467261336edbe61f6deeaRafael Espindola
799540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.globl	test_inline_modifier_wx
809540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.type	test_inline_modifier_wx,@function
819540074467ca6af4098467261336edbe61f6deeaRafael Espindolatest_inline_modifier_wx:                // @test_inline_modifier_wx
829540074467ca6af4098467261336edbe61f6deeaRafael Espindola// BB#0:
839540074467ca6af4098467261336edbe61f6deeaRafael Espindola	mov	 w2, w0
849540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
859540074467ca6af4098467261336edbe61f6deeaRafael Espindola	add w2, w2, w2
869540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
879540074467ca6af4098467261336edbe61f6deeaRafael Espindola	mov	 w2, w0
889540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
899540074467ca6af4098467261336edbe61f6deeaRafael Espindola	add w2, w2, w2
909540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
919540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
929540074467ca6af4098467261336edbe61f6deeaRafael Espindola	add x0, x0, x0
939540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
949540074467ca6af4098467261336edbe61f6deeaRafael Espindola	mov	 x0, x1
959540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
969540074467ca6af4098467261336edbe61f6deeaRafael Espindola	add x0, x0, x0
979540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
989540074467ca6af4098467261336edbe61f6deeaRafael Espindola	mov	 x0, x1
999540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
1009540074467ca6af4098467261336edbe61f6deeaRafael Espindola	add w0, w0, w0
1019540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
1029540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
1039540074467ca6af4098467261336edbe61f6deeaRafael Espindola	add x1, x1, x1
1049540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
1059540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
1069540074467ca6af4098467261336edbe61f6deeaRafael Espindola	add w0, wzr, wzr
1079540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
1089540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
1099540074467ca6af4098467261336edbe61f6deeaRafael Espindola	add x0, xzr, xzr
1109540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
1119540074467ca6af4098467261336edbe61f6deeaRafael Espindola	ret
1129540074467ca6af4098467261336edbe61f6deeaRafael Espindola.Ltmp3:
1139540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.size	test_inline_modifier_wx, .Ltmp3-test_inline_modifier_wx
1149540074467ca6af4098467261336edbe61f6deeaRafael Espindola
1159540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.globl	test_inline_modifier_bhsdq
1169540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.type	test_inline_modifier_bhsdq,@function
1179540074467ca6af4098467261336edbe61f6deeaRafael Espindolatest_inline_modifier_bhsdq:             // @test_inline_modifier_bhsdq
1189540074467ca6af4098467261336edbe61f6deeaRafael Espindola// BB#0:
1199540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
1209540074467ca6af4098467261336edbe61f6deeaRafael Espindola	ldr b0, [sp]
1219540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
1229540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
1239540074467ca6af4098467261336edbe61f6deeaRafael Espindola	ldr h0, [sp]
1249540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
1259540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
1269540074467ca6af4098467261336edbe61f6deeaRafael Espindola	ldr s0, [sp]
1279540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
1289540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
1299540074467ca6af4098467261336edbe61f6deeaRafael Espindola	ldr d0, [sp]
1309540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
1319540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
1329540074467ca6af4098467261336edbe61f6deeaRafael Espindola	ldr q0, [sp]
1339540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
1349540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
1359540074467ca6af4098467261336edbe61f6deeaRafael Espindola	ldr b0, [sp]
1369540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
1379540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
1389540074467ca6af4098467261336edbe61f6deeaRafael Espindola	ldr h0, [sp]
1399540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
1409540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
1419540074467ca6af4098467261336edbe61f6deeaRafael Espindola	ldr s0, [sp]
1429540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
1439540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
1449540074467ca6af4098467261336edbe61f6deeaRafael Espindola	ldr d0, [sp]
1459540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
1469540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
1479540074467ca6af4098467261336edbe61f6deeaRafael Espindola	ldr q0, [sp]
1489540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
1499540074467ca6af4098467261336edbe61f6deeaRafael Espindola	ret
1509540074467ca6af4098467261336edbe61f6deeaRafael Espindola.Ltmp4:
1519540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.size	test_inline_modifier_bhsdq, .Ltmp4-test_inline_modifier_bhsdq
1529540074467ca6af4098467261336edbe61f6deeaRafael Espindola
1539540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.globl	test_inline_modifier_c
1549540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.type	test_inline_modifier_c,@function
1559540074467ca6af4098467261336edbe61f6deeaRafael Espindolatest_inline_modifier_c:                 // @test_inline_modifier_c
1569540074467ca6af4098467261336edbe61f6deeaRafael Espindola// BB#0:
1579540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//APP
1589540074467ca6af4098467261336edbe61f6deeaRafael Espindola	adr x0, 3
1599540074467ca6af4098467261336edbe61f6deeaRafael Espindola	//NO_APP
1609540074467ca6af4098467261336edbe61f6deeaRafael Espindola	ret
1619540074467ca6af4098467261336edbe61f6deeaRafael Espindola.Ltmp5:
1629540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.size	test_inline_modifier_c, .Ltmp5-test_inline_modifier_c
1639540074467ca6af4098467261336edbe61f6deeaRafael Espindola
1649540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.hidden	var_simple              // @var_simple
1659540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.type	var_simple,@object
1669540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.bss
1679540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.globl	var_simple
1689540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.align	2
1699540074467ca6af4098467261336edbe61f6deeaRafael Espindolavar_simple:
1709540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.word	0                       // 0x0
1719540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.size	var_simple, 4
1729540074467ca6af4098467261336edbe61f6deeaRafael Espindola
1739540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.type	var_got,@object         // @var_got
1749540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.globl	var_got
1759540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.align	2
1769540074467ca6af4098467261336edbe61f6deeaRafael Espindolavar_got:
1779540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.word	0                       // 0x0
1789540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.size	var_got, 4
1799540074467ca6af4098467261336edbe61f6deeaRafael Espindola
1809540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.type	var_tlsgd,@object       // @var_tlsgd
1819540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.section	.tbss,"awT",@nobits
1829540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.globl	var_tlsgd
1839540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.align	2
1849540074467ca6af4098467261336edbe61f6deeaRafael Espindolavar_tlsgd:
1859540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.word	0                       // 0x0
1869540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.size	var_tlsgd, 4
1879540074467ca6af4098467261336edbe61f6deeaRafael Espindola
1889540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.type	var_tlsld,@object       // @var_tlsld
1899540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.globl	var_tlsld
1909540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.align	2
1919540074467ca6af4098467261336edbe61f6deeaRafael Espindolavar_tlsld:
1929540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.word	0                       // 0x0
1939540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.size	var_tlsld, 4
1949540074467ca6af4098467261336edbe61f6deeaRafael Espindola
1959540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.type	var_tlsie,@object       // @var_tlsie
1969540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.globl	var_tlsie
1979540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.align	2
1989540074467ca6af4098467261336edbe61f6deeaRafael Espindolavar_tlsie:
1999540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.word	0                       // 0x0
2009540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.size	var_tlsie, 4
2019540074467ca6af4098467261336edbe61f6deeaRafael Espindola
2029540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.type	var_tlsle,@object       // @var_tlsle
2039540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.globl	var_tlsle
2049540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.align	2
2059540074467ca6af4098467261336edbe61f6deeaRafael Espindolavar_tlsle:
2069540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.word	0                       // 0x0
2079540074467ca6af4098467261336edbe61f6deeaRafael Espindola	.size	var_tlsle, 4
2089540074467ca6af4098467261336edbe61f6deeaRafael Espindola
2099540074467ca6af4098467261336edbe61f6deeaRafael Espindola
210