| # RUN: llvm-mc -filetype=obj -triple=hexagon %s | llvm-objdump -r - | FileCheck %s | 
 |  | 
 | # CHECK: R_HEX_B22_PCREL | 
 | r_hex_b22_pcrel: | 
 | { jump #undefined } | 
 |  | 
 | # CHECK: R_HEX_B15_PCREL | 
 | r_hex_b15_pcrel: | 
 | { if (p0) jump #undefined } | 
 |  | 
 | # CHECK: R_HEX_B7_PCREL | 
 | r_hex_b7_pcrel: | 
 | { loop1 (#undefined, #0) } | 
 |  | 
 | # CHECK: R_HEX_LO16 | 
 | r_hex_lo16: | 
 | { r0.l = #lo(undefined) } | 
 |  | 
 | # CHECK: R_HEX_HI16 | 
 | r_hex_hi16: | 
 | { r0.h = #hi(undefined) } | 
 |  | 
 | # CHECK: R_HEX_32 | 
 | r_hex_32: | 
 | .word undefined | 
 |  | 
 | # CHECK: R_HEX_16 | 
 | r_hex_16: | 
 | .half undefined | 
 | .half 0 | 
 |  | 
 | # CHECK: R_HEX_8 | 
 | r_hex_8: | 
 | .byte undefined | 
 | .byte 0 | 
 | .byte 0 | 
 | .byte 0 | 
 |  | 
 | # CHECK: R_HEX_GPREL16_0 | 
 | r_hex_gprel16_0: | 
 | { r0 = memb (gp+#undefined) } | 
 |  | 
 | # CHECK: R_HEX_GPREL16_1 | 
 | r_hex_gprel16_1: | 
 | { r0 = memh (gp+#undefined) } | 
 |  | 
 | # CHECK: R_HEX_GPREL16_2 | 
 | r_hex_gprel16_2: | 
 | { r0 = memw (gp+#undefined) } | 
 |  | 
 | # CHECK: R_HEX_GPREL16_3 | 
 | r_hex_gprel16_3: | 
 | { r1:0 = memd (gp+#undefined) } | 
 |  | 
 | # CHECK: R_HEX_B13_PCREL | 
 | r_hex_b13_pcrel: | 
 | { if (r0 != #0) jump:nt #undefined } | 
 |  | 
 | # CHECK: R_HEX_B9_PCREL | 
 | r_hex_b9_pcrel: | 
 | { r0 = #0 ; jump #undefined } | 
 |  | 
 | # CHECK: R_HEX_B32_PCREL_X | 
 | r_hex_b32_pcrel_x: | 
 | { jump ##undefined } | 
 |  | 
 | # CHECK: R_HEX_32_6_X | 
 | r_hex_32_6_x: | 
 | { r0 = ##undefined } | 
 |  | 
 | # CHECK: R_HEX_B22_PCREL_X | 
 | r_hex_b22_pcrel_x: | 
 | { jump ##undefined } | 
 |  | 
 | # CHECK: R_HEX_B15_PCREL_X | 
 | r_hex_b15_pcrel_x: | 
 | { if (p0) jump ##undefined } | 
 |  | 
 | # CHECK: R_HEX_B7_PCREL_X | 
 | r_hex_b7_pcrel_x: | 
 | { loop1 (##undefined, #0) } | 
 |  | 
 | # CHECK: R_HEX_32_PCREL | 
 | r_hex_32_pcrel: | 
 | .word undefined@pcrel | 
 |  | 
 | # CHECK: R_HEX_PLT_B22_PCREL | 
 | r_hex_plt_b22_pcrel: | 
 | jump undefined@plt | 
 |  | 
 | # CHECK: R_HEX_GOTREL_32 | 
 | r_hex_gotrel_32: | 
 | .word undefined@gotrel | 
 |  | 
 | # CHECK: R_HEX_GOT_32 | 
 | r_hex_got_32: | 
 | .word undefined@got | 
 |  | 
 | # CHECK: R_HEX_GOT_16 | 
 | r_hex_got_16: | 
 | .half undefined@got | 
 | .half 0 | 
 |  | 
 | # CHECK: R_HEX_DTPREL_32 | 
 | r_hex_dtprel_32: | 
 | .word undefined@dtprel | 
 |  | 
 | # CHECK: R_HEX_DTPREL_16 | 
 | r_hex_dtprel_16: | 
 | .half undefined@dtprel | 
 | .half 0 | 
 |  | 
 | # CHECK: R_HEX_GD_GOT_32 | 
 | r_hex_gd_got_32: | 
 | .word undefined@gdgot | 
 |  | 
 | # CHECK: R_HEX_GD_GOT_16 | 
 | r_hex_gd_got_16: | 
 | .half undefined@gdgot | 
 | .half 0 | 
 |  | 
 | # CHECK: R_HEX_IE_32 | 
 | r_hex_ie_32: | 
 | .word undefined@ie | 
 |  | 
 | # CHECK: R_HEX_IE_GOT_32 | 
 | r_hex_ie_got_32: | 
 | .word undefined@iegot | 
 |  | 
 | # CHECK: R_HEX_IE_GOT_16 | 
 | r_hex_ie_got_16: | 
 | .half undefined@iegot | 
 | .half 0 | 
 |  | 
 | # CHECK: R_HEX_TPREL_32 | 
 | r_hex_tprel_32: | 
 | .word undefined@tprel | 
 |  | 
 | # CHECK: R_HEX_TPREL_16 | 
 | r_hex_tprel_16: | 
 | r0 = #undefined@tprel | 
 |  | 
 | # CHECK: R_HEX_6_PCREL_X | 
 | r_hex_6_pcrel_x: | 
 | { r0 = ##undefined@pcrel | 
 |   r1 = r1 } | 
 |  | 
 | # CHECK: R_HEX_GOTREL_32_6_X | 
 | r_hex_gotrel_32_6_x: | 
 | { r0 = ##undefined@gotrel } | 
 |  | 
 | # CHECK: R_HEX_GOTREL_16_X | 
 | r_hex_gotrel_16_x: | 
 | { r0 = ##undefined@gotrel } | 
 |  | 
 | # CHECK: R_HEX_GOTREL_11_X | 
 | r_hex_gotrel_11_x: | 
 | { r0 = memw(r0 + ##undefined@gotrel) } | 
 |  | 
 | # CHECK: R_HEX_GOT_32_6_X | 
 | r_hex_got_32_6_x: | 
 | { r0 = ##undefined@got } | 
 |  | 
 | # CHECK: R_HEX_GOT_16_X | 
 | r_hex_got_16_x: | 
 | { r0 = ##undefined@got } | 
 |  | 
 | # CHECK: R_HEX_GOT_11_X | 
 | r_hex_got_11_x: | 
 | { r0 = memw(r0 + ##undefined@got) } | 
 |  | 
 | # CHECK: R_HEX_DTPREL_32_6_X | 
 | r_hex_dtprel_32_6_x: | 
 | { r0 = ##undefined@dtprel } | 
 |  | 
 | # CHECK: R_HEX_DTPREL_16_X | 
 | r_hex_dtprel_16_x: | 
 | { r0 = ##undefined@dtprel } | 
 |  | 
 | # CHECK: R_HEX_DTPREL_11_X | 
 | r_hex_dtprel_11_x: | 
 | { r0 = memw(r0 + ##undefined@dtprel) } | 
 |  | 
 | # CHECK: R_HEX_GD_GOT_32_6_X | 
 | r_hex_gd_got_32_6_x: | 
 | { r0 = ##undefined@gdgot } | 
 |  | 
 | # CHECK: R_HEX_GD_GOT_16_X | 
 | r_hex_gd_got_16_x: | 
 | { r0 = ##undefined@gdgot } | 
 |  | 
 | # CHECK: R_HEX_GD_GOT_11_X | 
 | r_hex_gd_got_11_x: | 
 | { r0 = memw(r0 + ##undefined@gdgot) } | 
 |  | 
 | # CHECK: R_HEX_IE_32_6_X | 
 | r_hex_ie_32_6_x: | 
 | { r0 = ##undefined@ie } | 
 |  | 
 | # CHECK: R_HEX_IE_16_X | 
 | r_hex_ie_16_x: | 
 | { r0 = ##undefined@ie } | 
 |  | 
 | # CHECK: R_HEX_IE_GOT_32_6_X | 
 | r_hex_ie_got_32_6_x: | 
 | { r0 = ##undefined@iegot } | 
 |  | 
 | # CHECK: R_HEX_IE_GOT_16_X | 
 | r_hex_ie_got_16_x: | 
 | { r0 = ##undefined@iegot } | 
 |  | 
 | # CHECK: R_HEX_IE_GOT_11_X | 
 | r_hex_ie_got_11_x: | 
 | { r0 = memw(r0 + ##undefined@iegot) } | 
 |  | 
 | # CHECK: R_HEX_TPREL_32_6_X | 
 | r_hex_tprel_32_6_x: | 
 | { r0 = ##undefined@tprel } | 
 |  | 
 | # CHECK: R_HEX_TPREL_16_X | 
 | r_hex_tprel_16_x: | 
 | { r0 = ##undefined@tprel } | 
 |  | 
 | # CHECK: R_HEX_TPREL_11_X | 
 | r_hex_tprel_11_x: | 
 | { r0 = memw(r0 + ##undefined@tprel) } | 
 |  | 
 | # CHECK: R_HEX_LD_GOT_32 | 
 | r_hex_ld_got_32: | 
 | .word undefined@ldgot | 
 |  | 
 | # CHECK: R_HEX_LD_GOT_16 | 
 | r_hex_ld_got_16: | 
 | .half undefined@ldgot | 
 | .half 0 | 
 |  | 
 | # CHECK: R_HEX_LD_GOT_32_6_X | 
 | r_hex_ld_got_32_6_x: | 
 | { r0 = ##undefined@ldgot } | 
 |  | 
 | # CHECK: R_HEX_LD_GOT_16_X | 
 | r_hex_ld_got_16_x: | 
 | { r0 = ##undefined@ldgot } | 
 |  | 
 | # CHECK: R_HEX_LD_GOT_11_X | 
 | r_hex_ld_got_11_x: | 
 | { r0 = memw(r0 + ##undefined@ldgot) } | 
 |  |