sym-tls.s 900 Bytes
# RUN: llvm-mc -triple=ve %s -o - | FileCheck %s
# RUN: llvm-mc -triple=ve -filetype=obj %s -o - | llvm-objdump -r - | FileCheck %s --check-prefix=CHECK-OBJ

    lea %s0, x@tls_gd_lo(-24)
    and %s0, %s0, (32)0
    sic %s10
    lea.sl %s0, x@tls_gd_hi(%s10, %s0)
    lea %s12, __tls_get_addr@plt_lo(8)
    and %s12, %s12, (32)0
    lea.sl %s12, __tls_get_addr@plt_hi(%s10, %s12)
    bsic %s10, (, %s12)
# CHECK: lea %s0, x@tls_gd_lo(-24)
# CHECK-NEXT: and %s0, %s0, (32)0
# CHECK-NEXT: sic %s10
# CHECK-NEXT: lea.sl %s0, x@tls_gd_hi(%s10, %s0)
# CHECK-NEXT: lea %s12, __tls_get_addr@plt_lo(8)
# CHECK-NEXT: and %s12, %s12, (32)0
# CHECK-NEXT: lea.sl %s12, __tls_get_addr@plt_hi(%s10, %s12)
# CHECK-NEXT: bsic %s10, (, %s12)

# CHECK-OBJ: 0 R_VE_TLS_GD_LO32 x
# CHECK-OBJ-NEXT: 18 R_VE_TLS_GD_HI32 x
# CHECK-OBJ-NEXT: 20 R_VE_PLT_LO32 __tls_get_addr
# CHECK-OBJ-NEXT: 30 R_VE_PLT_HI32 __tls_get_addr