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