brintos

brintos / llvm-project-archived public Read only

0
0
Text · 14.3 KiB · 533063c Raw
386 lines · plain
1// RUN: llvm-mc -triple=arm64-linux-gnu -o - < %s | FileCheck %s2// RUN: llvm-mc -triple=arm64-linux-gnu -show-encoding -o - < %s | \3// RUN:   FileCheck --check-prefix=CHECK-ENCODING %s4// RUN: llvm-mc -triple=arm64-linux-gnu -filetype=obj < %s | \5// RUN:   llvm-objdump --triple=arm64-linux-gnu - -r | \6// RUN:   FileCheck %s --check-prefix=CHECK-OBJ-LP647 8   add x0, x2, #:lo12:sym9   add x0, x2, #:lo12:sym+1210   add x0, x2, #:lo12:sym-311// CHECK: add x0, x2, :lo12:sym12// CHECK: add x0, x2, :lo12:sym+1213// CHECK: add x0, x2, :lo12:sym-314// CHECK-OBJ-LP64:  0 R_AARCH64_ADD_ABS_LO12_NC sym15// CHECK-OBJ-LP64:  4 R_AARCH64_ADD_ABS_LO12_NC sym+0xc16// CHECK-OBJ-LP64:  8 R_AARCH64_ADD_ABS_LO12_NC sym-0x317 18   add x5, x7, #:dtprel_lo12:sym19// CHECK: add x5, x7, :dtprel_lo12:sym20// CHECK-OBJ-LP64: c R_AARCH64_TLSLD_ADD_DTPREL_LO12 sym21 22   add x9, x12, #:dtprel_lo12_nc:sym23// CHECK: add x9, x12, :dtprel_lo12_nc:sym24// CHECK-OBJ-LP64: 10 R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC sym25 26   add x20, x30, #:tprel_lo12:sym27// CHECK: add x20, x30, :tprel_lo12:sym28// CHECK-OBJ-LP64: 14 R_AARCH64_TLSLE_ADD_TPREL_LO12 sym29 30   add x9, x12, #:tprel_lo12_nc:sym31// CHECK: add x9, x12, :tprel_lo12_nc:sym32// CHECK-OBJ-LP64: 18 R_AARCH64_TLSLE_ADD_TPREL_LO12_NC sym33 34   add x5, x0, #:tlsdesc_lo12:sym35// CHECK: add x5, x0, :tlsdesc_lo12:sym36// CHECK-OBJ-LP64: 1c R_AARCH64_TLSDESC_ADD_LO12 sym37 38        add x0, x2, #:lo12:sym+839// CHECK: add x0, x2, :lo12:sym40// CHECK-OBJ-LP64: 20 R_AARCH64_ADD_ABS_LO12_NC sym+0x841 42   add x5, x7, #:dtprel_lo12:sym+143// CHECK: add x5, x7, :dtprel_lo12:sym+144// CHECK-OBJ-LP64: 24 R_AARCH64_TLSLD_ADD_DTPREL_LO12 sym+0x145 46   add x9, x12, #:dtprel_lo12_nc:sym+247// CHECK: add x9, x12, :dtprel_lo12_nc:sym+248// CHECK-OBJ-LP64: 28 R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC sym+0x249 50   add x20, x30, #:tprel_lo12:sym+1251// CHECK: add x20, x30, :tprel_lo12:sym+1252// CHECK-OBJ-LP64: 2c R_AARCH64_TLSLE_ADD_TPREL_LO12 sym+0xc53 54   add x9, x12, #:tprel_lo12_nc:sym+5455// CHECK: add x9, x12, :tprel_lo12_nc:sym+5456// CHECK-OBJ-LP64: 30 R_AARCH64_TLSLE_ADD_TPREL_LO12_NC sym+0x3657 58   add x5, x0, #:tlsdesc_lo12:sym+7059// CHECK: add x5, x0, :tlsdesc_lo12:sym+7060// CHECK-OBJ-LP64: 34 R_AARCH64_TLSDESC_ADD_LO12 sym+0x4661 62        .hword sym + 4 - .63// CHECK-OBJ-LP64: 38 R_AARCH64_PREL16 sym+0x464        .word sym - . + 865// CHECK-OBJ-LP64: 3a R_AARCH64_PREL32 sym+0x866        .xword sym-.67// CHECK-OBJ-LP64: 3e R_AARCH64_PREL64 sym{{$}}68 69        .hword sym70// CHECK-OBJ-LP64: 46 R_AARCH64_ABS16 sym71        .word sym+172// CHECK-OBJ-LP64: 48 R_AARCH64_ABS32 sym+0x173        .xword sym+1674// CHECK-OBJ-LP64: 4c R_AARCH64_ABS64 sym+0x1075 76   adrp x0, sym77// CHECK: adrp x0, sym78// CHECK-OBJ-LP64: 54 R_AARCH64_ADR_PREL_PG_HI21 sym79 80   adrp x15, :got:sym81// CHECK: adrp x15, :got:sym82// CHECK-OBJ-LP64: 58 R_AARCH64_ADR_GOT_PAGE sym83 84   adrp x15, :got_auth:sym85// CHECK: adrp x15, :got_auth:sym86// CHECK-OBJ-LP64: 5c R_AARCH64_AUTH_ADR_GOT_PAGE sym87 88   adrp x29, :gottprel:sym89// CHECK: adrp x29, :gottprel:sym90// CHECK-OBJ-LP64: 60 R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 sym91 92   adrp x2, :tlsdesc:sym93// CHECK: adrp x2, :tlsdesc:sym94// CHECK-OBJ-LP64: 64 R_AARCH64_TLSDESC_ADR_PAGE21 sym95 96   // LLVM is not competent enough to do this relocation because the97   // page boundary could occur anywhere after linking. A relocation98   // is needed.99   adrp x3, trickQuestion100   .global trickQuestion101trickQuestion:102// CHECK: adrp x3, trickQuestion103// CHECK-OBJ-LP64: 68 R_AARCH64_ADR_PREL_PG_HI21 trickQuestion104 105   ldrb w2, [x3, :lo12:sym]106   ldrsb w5, [x7, #:lo12:sym]107   ldrsb x11, [x13, :lo12:sym]108   ldr b17, [x19, #:lo12:sym]109   ldrb w2, [x3, :lo12:sym+15]110   ldrsb w5, [x7, #:lo12:sym-2]111   ldr b17, [x19, #:lo12:sym+4]112// CHECK: ldrb w2, [x3, :lo12:sym]113// CHECK: ldrsb w5, [x7, :lo12:sym]114// CHECK: ldrsb x11, [x13, :lo12:sym]115// CHECK: ldr b17, [x19, :lo12:sym]116// CHECK: ldrb w2, [x3, :lo12:sym+15]117// CHECK: ldrsb w5, [x7, :lo12:sym-2]118// CHECK: ldr b17, [x19, :lo12:sym+4]119// CHECK-OBJ-LP64: R_AARCH64_LDST8_ABS_LO12_NC sym120// CHECK-OBJ-LP64: R_AARCH64_LDST8_ABS_LO12_NC sym121// CHECK-OBJ-LP64: R_AARCH64_LDST8_ABS_LO12_NC sym122// CHECK-OBJ-LP64: R_AARCH64_LDST8_ABS_LO12_NC sym123// CHECK-OBJ-LP64: R_AARCH64_LDST8_ABS_LO12_NC sym+0xf124// CHECK-OBJ-LP64: R_AARCH64_LDST8_ABS_LO12_NC sym-0x2125// CHECK-OBJ-LP64: R_AARCH64_LDST8_ABS_LO12_NC sym+0x4126 127   ldrb w23, [x29, #:dtprel_lo12_nc:sym]128   ldrsb w23, [x19, #:dtprel_lo12:sym]129   ldrsb x17, [x13, :dtprel_lo12_nc:sym]130   ldr b11, [x7, #:dtprel_lo12:sym]131   ldrb w23, [x29, #:dtprel_lo12_nc:sym+2]132// CHECK: ldrb w23, [x29, :dtprel_lo12_nc:sym]133// CHECK: ldrsb w23, [x19, :dtprel_lo12:sym]134// CHECK: ldrsb x17, [x13, :dtprel_lo12_nc:sym]135// CHECK: ldr b11, [x7, :dtprel_lo12:sym]136// CHECK: ldrb w23, [x29, :dtprel_lo12_nc:sym+2]137// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC sym138// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST8_DTPREL_LO12 sym139// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC sym140// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST8_DTPREL_LO12 sym141// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC sym+0x2142 143   ldrb w1, [x2, :tprel_lo12:sym]144   ldrsb w3, [x4, #:tprel_lo12_nc:sym]145   ldrsb x5, [x6, :tprel_lo12:sym]146   ldr b7, [x8, #:tprel_lo12_nc:sym]147// CHECK: ldrb w1, [x2, :tprel_lo12:sym]148// CHECK: ldrsb w3, [x4, :tprel_lo12_nc:sym]149// CHECK: ldrsb x5, [x6, :tprel_lo12:sym]150// CHECK: ldr b7, [x8, :tprel_lo12_nc:sym]151// CHECK-OBJ-LP64: R_AARCH64_TLSLE_LDST8_TPREL_LO12 sym152// CHECK-OBJ-LP64: R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC sym153// CHECK-OBJ-LP64: R_AARCH64_TLSLE_LDST8_TPREL_LO12 sym154// CHECK-OBJ-LP64: R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC sym155 156   ldrh w2, [x3, #:lo12:sym]157   ldrsh w5, [x7, :lo12:sym]158   ldrsh x11, [x13, #:lo12:sym]159   ldr h17, [x19, :lo12:sym]160   ldrh w2, [x3, #:lo12:sym+4]161// CHECK: ldrh w2, [x3, :lo12:sym]162// CHECK: ldrsh w5, [x7, :lo12:sym]163// CHECK: ldrsh x11, [x13, :lo12:sym]164// CHECK: ldr h17, [x19, :lo12:sym]165// CHECK: ldrh w2, [x3, :lo12:sym+4]166// CHECK-OBJ-LP64: R_AARCH64_LDST16_ABS_LO12_NC sym167// CHECK-OBJ-LP64: R_AARCH64_LDST16_ABS_LO12_NC sym168// CHECK-OBJ-LP64: R_AARCH64_LDST16_ABS_LO12_NC sym169// CHECK-OBJ-LP64: R_AARCH64_LDST16_ABS_LO12_NC sym170// CHECK-OBJ-LP64: R_AARCH64_LDST16_ABS_LO12_NC sym+0x4171 172   ldrh w23, [x29, #:dtprel_lo12_nc:sym]173   ldrsh w23, [x19, :dtprel_lo12:sym]174   ldrsh x17, [x13, :dtprel_lo12_nc:sym]175   ldr h11, [x7, #:dtprel_lo12:sym]176// CHECK: ldrh w23, [x29, :dtprel_lo12_nc:sym]177// CHECK: ldrsh w23, [x19, :dtprel_lo12:sym]178// CHECK: ldrsh x17, [x13, :dtprel_lo12_nc:sym]179// CHECK: ldr h11, [x7, :dtprel_lo12:sym]180// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC sym181// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST16_DTPREL_LO12 sym182// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC sym183// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST16_DTPREL_LO12 sym184 185   ldrh w1, [x2, :tprel_lo12:sym]186   ldrsh w3, [x4, #:tprel_lo12_nc:sym]187   ldrsh x5, [x6, :tprel_lo12:sym]188   ldr h7, [x8, #:tprel_lo12_nc:sym]189// CHECK: ldrh w1, [x2, :tprel_lo12:sym]190// CHECK: ldrsh w3, [x4, :tprel_lo12_nc:sym]191// CHECK: ldrsh x5, [x6, :tprel_lo12:sym]192// CHECK: ldr h7, [x8, :tprel_lo12_nc:sym]193// CHECK-OBJ-LP64: R_AARCH64_TLSLE_LDST16_TPREL_LO12 sym194// CHECK-OBJ-LP64: R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC sym195// CHECK-OBJ-LP64: R_AARCH64_TLSLE_LDST16_TPREL_LO12 sym196// CHECK-OBJ-LP64: R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC sym197 198   ldr w1, [x2, #:lo12:sym]199   ldrsw x3, [x4, #:lo12:sym]200   ldr s4, [x5, :lo12:sym]201// CHECK: ldr w1, [x2, :lo12:sym]202// CHECK: ldrsw x3, [x4, :lo12:sym]203// CHECK: ldr s4, [x5, :lo12:sym]204// CHECK-OBJ-LP64: R_AARCH64_LDST32_ABS_LO12_NC sym205// CHECK-OBJ-LP64: R_AARCH64_LDST32_ABS_LO12_NC sym206// CHECK-OBJ-LP64: R_AARCH64_LDST32_ABS_LO12_NC sym207 208   ldr w1, [x2, :dtprel_lo12:sym]209   ldrsw x3, [x4, #:dtprel_lo12_nc:sym]210   ldr s4, [x5, #:dtprel_lo12_nc:sym]211// CHECK: ldr w1, [x2, :dtprel_lo12:sym]212// CHECK: ldrsw x3, [x4, :dtprel_lo12_nc:sym]213// CHECK: ldr s4, [x5, :dtprel_lo12_nc:sym]214// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST32_DTPREL_LO12 sym215// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC sym216// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC sym217 218 219   ldr w1, [x2, #:tprel_lo12:sym]220   ldrsw x3, [x4, :tprel_lo12_nc:sym]221   ldr s4, [x5, :tprel_lo12_nc:sym]222// CHECK: ldr w1, [x2, :tprel_lo12:sym]223// CHECK: ldrsw x3, [x4, :tprel_lo12_nc:sym]224// CHECK: ldr s4, [x5, :tprel_lo12_nc:sym]225// CHECK-OBJ-LP64: R_AARCH64_TLSLE_LDST32_TPREL_LO12 sym226// CHECK-OBJ-LP64: R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC sym227// CHECK-OBJ-LP64: R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC sym228 229   ldr x28, [x27, :lo12:sym]230   ldr d26, [x25, #:lo12:sym]231   ldr x28, [x27, :lo12:sym+10]232   ldr x28, [x27, :lo12:sym-15]233// CHECK: ldr x28, [x27, :lo12:sym]234// CHECK: ldr d26, [x25, :lo12:sym]235// CHECK: ldr x28, [x27, :lo12:sym+10]236// CHECK: ldr x28, [x27, :lo12:sym-15]237// CHECK-OBJ-LP64: R_AARCH64_LDST64_ABS_LO12_NC sym238// CHECK-OBJ-LP64: R_AARCH64_LDST64_ABS_LO12_NC sym239// CHECK-OBJ-LP64: R_AARCH64_LDST64_ABS_LO12_NC sym+0xa240// CHECK-OBJ-LP64: R_AARCH64_LDST64_ABS_LO12_NC sym-0xf241 242   ldr x24, [x23, #:got_lo12:sym]243   ldr d22, [x21, :got_lo12:sym]244   ldr x24, [x23, :got_lo12:sym+7]245// CHECK: ldr x24, [x23, :got_lo12:sym]246// CHECK: ldr d22, [x21, :got_lo12:sym]247// CHECK: ldr x24, [x23, :got_lo12:sym+7]248// CHECK-OBJ-LP64: R_AARCH64_LD64_GOT_LO12_NC sym249// CHECK-OBJ-LP64: R_AARCH64_LD64_GOT_LO12_NC sym250// CHECK-OBJ-LP64: R_AARCH64_LD64_GOT_LO12_NC sym+0x7251 252   ldr x24, [x23, #:got_auth_lo12:sym]253   ldr d22, [x21, :got_auth_lo12:sym]254   ldr x24, [x23, :got_auth_lo12:sym+7]255// CHECK: ldr x24, [x23, :got_auth_lo12:sym]256// CHECK: ldr d22, [x21, :got_auth_lo12:sym]257// CHECK: ldr x24, [x23, :got_auth_lo12:sym+7]258// CHECK-OBJ-LP64: R_AARCH64_AUTH_LD64_GOT_LO12_NC sym259// CHECK-OBJ-LP64: R_AARCH64_AUTH_LD64_GOT_LO12_NC sym260// CHECK-OBJ-LP64: R_AARCH64_AUTH_LD64_GOT_LO12_NC sym+0x7261 262  ldr x24, [x23, #:gotpage_lo15:sym]263  ldr d22, [x21, :gotpage_lo15:sym]264  ldr d22, [x23, :gotpage_lo15:sym+7]265// CHECK: ldr x24, [x23, :gotpage_lo15:sym]266// CHECK: ldr d22, [x21, :gotpage_lo15:sym]267// CHECK: ldr d22, [x23, :gotpage_lo15:sym+7]268// CHECK-OBJ-LP64: R_AARCH64_LD64_GOTPAGE_LO15 sym{{$}}269// CHECK-OBJ-LP64: R_AARCH64_LD64_GOTPAGE_LO15 sym{{$}}270// CHECK-OBJ-LP64: R_AARCH64_LD64_GOTPAGE_LO15 sym+0x7271 272   ldr x24, [x23, :dtprel_lo12_nc:sym]273   ldr d22, [x21, #:dtprel_lo12:sym]274// CHECK: ldr x24, [x23, :dtprel_lo12_nc:sym]275// CHECK: ldr d22, [x21, :dtprel_lo12:sym]276// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC sym277// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST64_DTPREL_LO12 sym278 279   ldr q24, [x23, :dtprel_lo12_nc:sym]280   ldr q22, [x21, #:dtprel_lo12:sym]281// CHECK: ldr q24, [x23, :dtprel_lo12_nc:sym]282// CHECK: ldr q22, [x21, :dtprel_lo12:sym]283// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC sym284// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST128_DTPREL_LO12 sym285 286   ldr x24, [x23, #:tprel_lo12:sym]287   ldr d22, [x21, :tprel_lo12_nc:sym]288// CHECK: ldr x24, [x23, :tprel_lo12:sym]289// CHECK: ldr d22, [x21, :tprel_lo12_nc:sym]290// CHECK-OBJ-LP64: R_AARCH64_TLSLE_LDST64_TPREL_LO12 sym291// CHECK-OBJ-LP64: R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC sym292 293   ldr q24, [x23, #:tprel_lo12:sym]294   ldr q22, [x21, :tprel_lo12_nc:sym]295// CHECK: ldr q24, [x23, :tprel_lo12:sym]296// CHECK: ldr q22, [x21, :tprel_lo12_nc:sym]297// CHECK-OBJ-LP64: R_AARCH64_TLSLE_LDST128_TPREL_LO12 sym298// CHECK-OBJ-LP64: R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC sym299 300   ldr x24, [x23, :gottprel_lo12:sym]301   ldr d22, [x21, #:gottprel_lo12:sym]302// CHECK: ldr x24, [x23, :gottprel_lo12:sym]303// CHECK: ldr d22, [x21, :gottprel_lo12:sym]304// CHECK-OBJ-LP64: R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC sym305// CHECK-OBJ-LP64: R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC sym306 307   ldr x24, [x23, #:tlsdesc_lo12:sym]308   ldr d22, [x21, :tlsdesc_lo12:sym]309// CHECK: ldr x24, [x23, :tlsdesc_lo12:sym]310// CHECK: ldr d22, [x21, :tlsdesc_lo12:sym]311// CHECK-OBJ-LP64: R_AARCH64_TLSDESC_LD64_LO12 sym312// CHECK-OBJ-LP64: R_AARCH64_TLSDESC_LD64_LO12 sym313 314   ldr q20, [x19, #:lo12:sym]315// CHECK: ldr q20, [x19, :lo12:sym]316// CHECK-OBJ-LP64: R_AARCH64_LDST128_ABS_LO12_NC sym317// check encoding here, since encoding test doesn't belong with TLS encoding318// tests, as it isn't a TLS relocation.319// CHECK-ENCODING: ldr q20, [x19, :lo12:sym] // encoding: [0x74,0bAAAAAA10,0b11AAAAAA,0x3d]320// CHECK-ENCODING-NEXT:  0, value: :lo12:sym, kind: fixup_aarch64_ldst_imm12_scale16321 322// Since relocated instructions print without a '#', that syntax should323// certainly be accepted when assembling.324   add x3, x5, :lo12:imm325// CHECK: add x3, x5, :lo12:imm326 327   ldr x24, #:got:sym328   ldr d22, :got:sym329// CHECK: ldr x24, :got:sym330// CHECK: ldr d22, :got:sym331// CHECK-OBJ-LP64: R_AARCH64_GOT_LD_PREL19 sym332// CHECK-OBJ-LP64: R_AARCH64_GOT_LD_PREL19 sym333 334   adr x24, #:got_auth:sym335   adr x24, :got_auth:sym336   ldr x24, #:got_auth:sym337   ldr x24, :got_auth:sym338// CHECK: adr x24, :got_auth:sym339// CHECK: adr x24, :got_auth:sym340// CHECK: ldr x24, :got_auth:sym341// CHECK: ldr x24, :got_auth:sym342// CHECK-OBJ-LP64: R_AARCH64_AUTH_GOT_ADR_PREL_LO21 sym343// CHECK-OBJ-LP64: R_AARCH64_AUTH_GOT_ADR_PREL_LO21 sym344// CHECK-OBJ-LP64: R_AARCH64_AUTH_GOT_LD_PREL19 sym345// CHECK-OBJ-LP64: R_AARCH64_AUTH_GOT_LD_PREL19 sym346 347// GOT relocations referencing local symbols are not converted to reference348// STT_SECTION symbols. https://github.com/llvm/llvm-project/issues/63418349  ldr x0, [x0, :got_lo12:local0]350  ldr x1, [x1, :got_lo12:local1]351  ldr x2, [x2, :gotpage_lo15:local2]352  adrp x3, :got:local3353// CHECK:      ldr x0, [x0, :got_lo12:local0]354// CHECK-NEXT: ldr x1, [x1, :got_lo12:local1]355// CHECK-NEXT: ldr x2, [x2, :gotpage_lo15:local2]356// CHECK-NEXT: adrp x3, :got:local3357// CHECK-OBJ-LP64:      R_AARCH64_LD64_GOT_LO12_NC local0{{$}}358// CHECK-OBJ-LP64-NEXT: R_AARCH64_LD64_GOT_LO12_NC local1{{$}}359// CHECK-OBJ-LP64-NEXT: R_AARCH64_LD64_GOTPAGE_LO15 local2{{$}}360// CHECK-OBJ-LP64-NEXT: R_AARCH64_ADR_GOT_PAGE local3{{$}}361 362   add x5, x0, #:tlsdesc_auth_lo12:sym363// CHECK: add x5, x0, :tlsdesc_auth_lo12:sym364// CHECK-OBJ-LP64: R_AARCH64_AUTH_TLSDESC_ADD_LO12 sym365 366   add x5, x0, #:tlsdesc_auth_lo12:sym+70367// CHECK: add x5, x0, :tlsdesc_auth_lo12:sym+70368// CHECK-OBJ-LP64: R_AARCH64_AUTH_TLSDESC_ADD_LO12 sym+0x46369 370   adrp x2, :tlsdesc_auth:sym371// CHECK: adrp x2, :tlsdesc_auth:sym372// CHECK-OBJ-LP64: R_AARCH64_AUTH_TLSDESC_ADR_PAGE21 sym373 374   ldr x24, [x23, #:tlsdesc_auth_lo12:sym]375   ldr d22, [x21, :tlsdesc_auth_lo12:sym]376// CHECK: ldr x24, [x23, :tlsdesc_auth_lo12:sym]377// CHECK: ldr d22, [x21, :tlsdesc_auth_lo12:sym]378// CHECK-OBJ-LP64: R_AARCH64_AUTH_TLSDESC_LD64_LO12 sym379// CHECK-OBJ-LP64: R_AARCH64_AUTH_TLSDESC_LD64_LO12 sym380 381.data382local0: .long 0383local1: .long 0384local2: .long 0385local3: .long 0386