1# RUN: llvm-mc -filetype=obj -triple=riscv64 %s \ 2# RUN: | llvm-objdump -d -M no-aliases - \ 3# RUN: | FileCheck --check-prefix=CHECK-INST %s 4# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+c %s \ 5# RUN: | llvm-objdump -d -M no-aliases - \ 6# RUN: | FileCheck --check-prefix=CHECK-INST-C %s 7# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+relax %s \ 8# RUN: | llvm-objdump -dr -M no-aliases - \ 9# RUN: | FileCheck --check-prefix=CHECK-INST-RELAX %s 10# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+c,+relax %s \ 11# RUN: | llvm-objdump -dr -M no-aliases - \ 12# RUN: | FileCheck --check-prefix=CHECK-INST-C-RELAX %s 13 14 .text 15 .type test,@function 16test: 17# CHECK-INST: beq a0, a1, 0x8 18# CHECK-INST-NEXT: jal zero, 0x1458 19# CHECK-INST-C: beq a0, a1, 0x8 20# CHECK-INST-C-NEXT: jal zero, 0x1458 21# CHECK-INST-RELAX: beq a0, a1, 0x8 22# CHECK-INST-RELAX-NEXT: jal zero, {{.*}} 23# CHECK-INST-RELAX-NEXT: R_RISCV_JAL .L1 24# CHECK-INST-C-RELAX: beq a0, a1, 0x8 25# CHECK-INST-C-RELAX-NEXT: jal zero, {{.*}} 26# CHECK-INST-C-RELAX-NEXT: R_RISCV_JAL .L1 27 bne a0, a1, .L1 28.fill 1300, 4, 0 29.L1: 30 ret 31# CHECK-INST: bne a0, a1, 0x1464 32# CHECK-INST-NEXT: jal zero, 0x28b4 33# CHECK-INST-C: bne a0, a1, 0x1462 34# CHECK-INST-C-NEXT: jal zero, 0x28b2 35# CHECK-INST-RELAX: bne a0, a1, 0x1464 36# CHECK-INST-RELAX-NEXT: jal zero, {{.*}} 37# CHECK-INST-RELAX-NEXT: R_RISCV_JAL .L2 38# CHECK-INST-C-RELAX: bne a0, a1, 0x1462 39# CHECK-INST-C-RELAX-NEXT: jal zero, {{.*}} 40# CHECK-INST-C-RELAX-NEXT: R_RISCV_JAL .L2 41 beq a0, a1, .L2 42.fill 1300, 4, 0 43.L2: 44 ret 45# CHECK-INST: bge a0, a1, 0x28c0 46# CHECK-INST-NEXT: jal zero, 0x3d10 47# CHECK-INST-C: bge a0, a1, 0x28bc 48# CHECK-INST-C-NEXT: jal zero, 0x3d0c 49# CHECK-INST-RELAX: bge a0, a1, 0x28c0 50# CHECK-INST-RELAX-NEXT: jal zero, {{.*}} 51# CHECK-INST-RELAX-NEXT: R_RISCV_JAL .L3 52# CHECK-INST-C-RELAX: bge a0, a1, 0x28bc 53# CHECK-INST-C-RELAX-NEXT: jal zero, {{.*}} 54# CHECK-INST-C-RELAX-NEXT: R_RISCV_JAL .L3 55 blt a0, a1, .L3 56.fill 1300, 4, 0 57.L3: 58 ret 59# CHECK-INST: blt a0, a1, 0x3d1c 60# CHECK-INST-NEXT: jal zero, 0x516c 61# CHECK-INST-C: blt a0, a1, 0x3d16 62# CHECK-INST-C-NEXT: jal zero, 0x5166 63# CHECK-INST-RELAX: blt a0, a1, 0x3d1c 64# CHECK-INST-RELAX-NEXT: jal zero, {{.*}} 65# CHECK-INST-RELAX-NEXT: R_RISCV_JAL .L4 66# CHECK-INST-C-RELAX: blt a0, a1, 0x3d16 67# CHECK-INST-C-RELAX-NEXT: jal zero, {{.*}} 68# CHECK-INST-C-RELAX-NEXT: R_RISCV_JAL .L4 69 bge a0, a1, .L4 70.fill 1300, 4, 0 71.L4: 72 ret 73# CHECK-INST: bgeu a0, a1, 0x5178 74# CHECK-INST-NEXT: jal zero, 0x65c8 75# CHECK-INST-C: bgeu a0, a1, 0x5170 76# CHECK-INST-C-NEXT: jal zero, 0x65c0 77# CHECK-INST-RELAX: bgeu a0, a1, 0x5178 78# CHECK-INST-RELAX-NEXT: jal zero, {{.*}} 79# CHECK-INST-RELAX-NEXT: R_RISCV_JAL .L5 80# CHECK-INST-C-RELAX: bgeu a0, a1, 0x5170 81# CHECK-INST-C-RELAX-NEXT: jal zero, {{.*}} 82# CHECK-INST-C-RELAX-NEXT: R_RISCV_JAL .L5 83 bltu a0, a1, .L5 84.fill 1300, 4, 0 85.L5: 86 ret 87# CHECK-INST: bltu a0, a1, 0x65d4 88# CHECK-INST-NEXT: jal zero, 0x7a24 89# CHECK-INST-C: bltu a0, a1, 0x65ca 90# CHECK-INST-C-NEXT: jal zero, 0x7a1a 91# CHECK-INST-RELAX: bltu a0, a1, 0x65d4 92# CHECK-INST-RELAX-NEXT: jal zero, {{.*}} 93# CHECK-INST-RELAX-NEXT: R_RISCV_JAL .L6 94# CHECK-INST-C-RELAX: bltu a0, a1, 0x65ca 95# CHECK-INST-C-RELAX-NEXT: jal zero, {{.*}} 96# CHECK-INST-C-RELAX-NEXT: R_RISCV_JAL .L6 97 bgeu a0, a1, .L6 98.fill 1300, 4, 0 99.L6: 100 ret 101# CHECK-INST: bne a0, zero, 0x7a30 102# CHECK-INST-NEXT: jal zero, 0x8e80 103# CHECK-INST-C: c.bnez a0, 0x7a22 104# CHECK-INST-C-NEXT: jal zero, 0x8e72 105# CHECK-INST-RELAX: bne a0, zero, 0x7a30 106# CHECK-INST-RELAX-NEXT: jal zero, {{.*}} 107# CHECK-INST-RELAX-NEXT: R_RISCV_JAL .L7 108# CHECK-INST-C-RELAX: c.bnez a0, 0x7a22 109# CHECK-INST-C-RELAX-NEXT: jal zero, {{.*}} 110# CHECK-INST-C-RELAX-NEXT: R_RISCV_JAL .L7 111 beqz a0, .L7 112.fill 1300, 4, 0 113.L7: 114 ret 115# CHECK-INST: bne zero, a0, 0x8e8c 116# CHECK-INST-NEXT: jal zero, 0xa2dc 117# CHECK-INST-C: c.bnez a0, 0x8e7a 118# CHECK-INST-C-NEXT: jal zero, 0xa2ca 119# CHECK-INST-RELAX: bne zero, a0, 0x8e8c 120# CHECK-INST-RELAX-NEXT: jal zero, {{.*}} 121# CHECK-INST-RELAX-NEXT: R_RISCV_JAL .L8 122# CHECK-INST-C-RELAX: c.bnez a0, 0x8e7a 123# CHECK-INST-C-RELAX-NEXT: jal zero, {{.*}} 124# CHECK-INST-C-RELAX-NEXT: R_RISCV_JAL .L8 125 beq x0, a0, .L8 126.fill 1300, 4, 0 127.L8: 128 ret 129# CHECK-INST: beq a0, zero, 0xa2e8 130# CHECK-INST-NEXT: jal zero, 0xb738 131# CHECK-INST-C: c.beqz a0, 0xa2d2 132# CHECK-INST-C-NEXT: jal zero, 0xb722 133# CHECK-INST-RELAX: beq a0, zero, 0xa2e8 134# CHECK-INST-RELAX-NEXT: jal zero, {{.*}} 135# CHECK-INST-RELAX-NEXT: R_RISCV_JAL .L9 136# CHECK-INST-C-RELAX: c.beqz a0, 0xa2d2 137# CHECK-INST-C-RELAX-NEXT: jal zero, {{.*}} 138# CHECK-INST-C-RELAX-NEXT: R_RISCV_JAL .L9 139 bnez a0, .L9 140.fill 1300, 4, 0 141.L9: 142 ret 143# CHECK-INST: beq a6, zero, 0xb744 144# CHECK-INST-NEXT: jal zero, 0xcb94 145# CHECK-INST-C: beq a6, zero, 0xb72c 146# CHECK-INST-C-NEXT: jal zero, 0xcb7c 147# CHECK-INST-RELAX: beq a6, zero, 0xb744 148# CHECK-INST-RELAX-NEXT: jal zero, {{.*}} 149# CHECK-INST-RELAX-NEXT: R_RISCV_JAL .L10 150# CHECK-INST-C-RELAX: beq a6, zero, 0xb72c 151# CHECK-INST-C-RELAX-NEXT: jal zero, {{.*}} 152# CHECK-INST-C-RELAX-NEXT: R_RISCV_JAL .L10 153 bnez x16, .L10 154.fill 1300, 4, 0 155.L10: 156 ret 157.Lfunc_end0: 158 .size test, .Lfunc_end0-test 159