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 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235
|
# RUN: llvm-mc %s -triple=riscv32 -mattr=+a,+zabha -riscv-no-aliases -show-encoding \
# RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s
# RUN: llvm-mc %s -triple=riscv64 -mattr=+a,+zabha -riscv-no-aliases -show-encoding \
# RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s
# RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+a,+zabha < %s \
# RUN: | llvm-objdump --mattr=+a,+zabha -M no-aliases -d -r - \
# RUN: | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s
# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+a,+zabha < %s \
# RUN: | llvm-objdump --mattr=+a,+zabha -M no-aliases -d -r - \
# RUN: | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s
# CHECK-ASM-AND-OBJ: amoswap.b a4, ra, (s0)
# CHECK-ASM: encoding: [0x2f,0x07,0x14,0x08]
amoswap.b a4, ra, (s0)
# CHECK-ASM-AND-OBJ: amoadd.b a1, a2, (a3)
# CHECK-ASM: encoding: [0xaf,0x85,0xc6,0x00]
amoadd.b a1, a2, (a3)
# CHECK-ASM-AND-OBJ: amoxor.b a2, a3, (a4)
# CHECK-ASM: encoding: [0x2f,0x06,0xd7,0x20]
amoxor.b a2, a3, (a4)
# CHECK-ASM-AND-OBJ: amoand.b a3, a4, (a5)
# CHECK-ASM: encoding: [0xaf,0x86,0xe7,0x60]
amoand.b a3, a4, (a5)
# CHECK-ASM-AND-OBJ: amoor.b a4, a5, (a6)
# CHECK-ASM: encoding: [0x2f,0x07,0xf8,0x40]
amoor.b a4, a5, (a6)
# CHECK-ASM-AND-OBJ: amomin.b a5, a6, (a7)
# CHECK-ASM: encoding: [0xaf,0x87,0x08,0x81]
amomin.b a5, a6, (a7)
# CHECK-ASM-AND-OBJ: amomax.b s7, s6, (s5)
# CHECK-ASM: encoding: [0xaf,0x8b,0x6a,0xa1]
amomax.b s7, s6, (s5)
# CHECK-ASM-AND-OBJ: amominu.b s6, s5, (s4)
# CHECK-ASM: encoding: [0x2f,0x0b,0x5a,0xc1]
amominu.b s6, s5, (s4)
# CHECK-ASM-AND-OBJ: amomaxu.b s5, s4, (s3)
# CHECK-ASM: encoding: [0xaf,0x8a,0x49,0xe1]
amomaxu.b s5, s4, (s3)
# CHECK-ASM-AND-OBJ: amoswap.b.aq a4, ra, (s0)
# CHECK-ASM: encoding: [0x2f,0x07,0x14,0x0c]
amoswap.b.aq a4, ra, (s0)
# CHECK-ASM-AND-OBJ: amoadd.b.aq a1, a2, (a3)
# CHECK-ASM: encoding: [0xaf,0x85,0xc6,0x04]
amoadd.b.aq a1, a2, (a3)
# CHECK-ASM-AND-OBJ: amoxor.b.aq a2, a3, (a4)
# CHECK-ASM: encoding: [0x2f,0x06,0xd7,0x24]
amoxor.b.aq a2, a3, (a4)
# CHECK-ASM-AND-OBJ: amoand.b.aq a3, a4, (a5)
# CHECK-ASM: encoding: [0xaf,0x86,0xe7,0x64]
amoand.b.aq a3, a4, (a5)
# CHECK-ASM-AND-OBJ: amoor.b.aq a4, a5, (a6)
# CHECK-ASM: encoding: [0x2f,0x07,0xf8,0x44]
amoor.b.aq a4, a5, (a6)
# CHECK-ASM-AND-OBJ: amomin.b.aq a5, a6, (a7)
# CHECK-ASM: encoding: [0xaf,0x87,0x08,0x85]
amomin.b.aq a5, a6, (a7)
# CHECK-ASM-AND-OBJ: amomax.b.aq s7, s6, (s5)
# CHECK-ASM: encoding: [0xaf,0x8b,0x6a,0xa5]
amomax.b.aq s7, s6, (s5)
# CHECK-ASM-AND-OBJ: amominu.b.aq s6, s5, (s4)
# CHECK-ASM: encoding: [0x2f,0x0b,0x5a,0xc5]
amominu.b.aq s6, s5, (s4)
# CHECK-ASM-AND-OBJ: amomaxu.b.aq s5, s4, (s3)
# CHECK-ASM: encoding: [0xaf,0x8a,0x49,0xe5]
amomaxu.b.aq s5, s4, (s3)
# CHECK-ASM-AND-OBJ: amoswap.b.rl a4, ra, (s0)
# CHECK-ASM: encoding: [0x2f,0x07,0x14,0x0a]
amoswap.b.rl a4, ra, (s0)
# CHECK-ASM-AND-OBJ: amoadd.b.rl a1, a2, (a3)
# CHECK-ASM: encoding: [0xaf,0x85,0xc6,0x02]
amoadd.b.rl a1, a2, (a3)
# CHECK-ASM-AND-OBJ: amoxor.b.rl a2, a3, (a4)
# CHECK-ASM: encoding: [0x2f,0x06,0xd7,0x22]
amoxor.b.rl a2, a3, (a4)
# CHECK-ASM-AND-OBJ: amoand.b.rl a3, a4, (a5)
# CHECK-ASM: encoding: [0xaf,0x86,0xe7,0x62]
amoand.b.rl a3, a4, (a5)
# CHECK-ASM-AND-OBJ: amoor.b.rl a4, a5, (a6)
# CHECK-ASM: encoding: [0x2f,0x07,0xf8,0x42]
amoor.b.rl a4, a5, (a6)
# CHECK-ASM-AND-OBJ: amomin.b.rl a5, a6, (a7)
# CHECK-ASM: encoding: [0xaf,0x87,0x08,0x83]
amomin.b.rl a5, a6, (a7)
# CHECK-ASM-AND-OBJ: amomax.b.rl s7, s6, (s5)
# CHECK-ASM: encoding: [0xaf,0x8b,0x6a,0xa3]
amomax.b.rl s7, s6, (s5)
# CHECK-ASM-AND-OBJ: amominu.b.rl s6, s5, (s4)
# CHECK-ASM: encoding: [0x2f,0x0b,0x5a,0xc3]
amominu.b.rl s6, s5, (s4)
# CHECK-ASM-AND-OBJ: amomaxu.b.rl s5, s4, (s3)
# CHECK-ASM: encoding: [0xaf,0x8a,0x49,0xe3]
amomaxu.b.rl s5, s4, (s3)
# CHECK-ASM-AND-OBJ: amoswap.b.aqrl a4, ra, (s0)
# CHECK-ASM: encoding: [0x2f,0x07,0x14,0x0e]
amoswap.b.aqrl a4, ra, (s0)
# CHECK-ASM-AND-OBJ: amoadd.b.aqrl a1, a2, (a3)
# CHECK-ASM: encoding: [0xaf,0x85,0xc6,0x06]
amoadd.b.aqrl a1, a2, (a3)
# CHECK-ASM-AND-OBJ: amoxor.b.aqrl a2, a3, (a4)
# CHECK-ASM: encoding: [0x2f,0x06,0xd7,0x26]
amoxor.b.aqrl a2, a3, (a4)
# CHECK-ASM-AND-OBJ: amoand.b.aqrl a3, a4, (a5)
# CHECK-ASM: encoding: [0xaf,0x86,0xe7,0x66]
amoand.b.aqrl a3, a4, (a5)
# CHECK-ASM-AND-OBJ: amoor.b.aqrl a4, a5, (a6)
# CHECK-ASM: encoding: [0x2f,0x07,0xf8,0x46]
amoor.b.aqrl a4, a5, (a6)
# CHECK-ASM-AND-OBJ: amomin.b.aqrl a5, a6, (a7)
# CHECK-ASM: encoding: [0xaf,0x87,0x08,0x87]
amomin.b.aqrl a5, a6, (a7)
# CHECK-ASM-AND-OBJ: amomax.b.aqrl s7, s6, (s5)
# CHECK-ASM: encoding: [0xaf,0x8b,0x6a,0xa7]
amomax.b.aqrl s7, s6, (s5)
# CHECK-ASM-AND-OBJ: amominu.b.aqrl s6, s5, (s4)
# CHECK-ASM: encoding: [0x2f,0x0b,0x5a,0xc7]
amominu.b.aqrl s6, s5, (s4)
# CHECK-ASM-AND-OBJ: amomaxu.b.aqrl s5, s4, (s3)
# CHECK-ASM: encoding: [0xaf,0x8a,0x49,0xe7]
amomaxu.b.aqrl s5, s4, (s3)
# CHECK-ASM-AND-OBJ: amoswap.h a4, ra, (s0)
# CHECK-ASM: encoding: [0x2f,0x17,0x14,0x08]
amoswap.h a4, ra, (s0)
# CHECK-ASM-AND-OBJ: amoadd.h a1, a2, (a3)
# CHECK-ASM: encoding: [0xaf,0x95,0xc6,0x00]
amoadd.h a1, a2, (a3)
# CHECK-ASM-AND-OBJ: amoxor.h a2, a3, (a4)
# CHECK-ASM: encoding: [0x2f,0x16,0xd7,0x20]
amoxor.h a2, a3, (a4)
# CHECK-ASM-AND-OBJ: amoand.h a3, a4, (a5)
# CHECK-ASM: encoding: [0xaf,0x96,0xe7,0x60]
amoand.h a3, a4, (a5)
# CHECK-ASM-AND-OBJ: amoor.h a4, a5, (a6)
# CHECK-ASM: encoding: [0x2f,0x17,0xf8,0x40]
amoor.h a4, a5, (a6)
# CHECK-ASM-AND-OBJ: amomin.h a5, a6, (a7)
# CHECK-ASM: encoding: [0xaf,0x97,0x08,0x81]
amomin.h a5, a6, (a7)
# CHECK-ASM-AND-OBJ: amomax.h s7, s6, (s5)
# CHECK-ASM: encoding: [0xaf,0x9b,0x6a,0xa1]
amomax.h s7, s6, (s5)
# CHECK-ASM-AND-OBJ: amominu.h s6, s5, (s4)
# CHECK-ASM: encoding: [0x2f,0x1b,0x5a,0xc1]
amominu.h s6, s5, (s4)
# CHECK-ASM-AND-OBJ: amomaxu.h s5, s4, (s3)
# CHECK-ASM: encoding: [0xaf,0x9a,0x49,0xe1]
amomaxu.h s5, s4, (s3)
# CHECK-ASM-AND-OBJ: amoswap.h.aq a4, ra, (s0)
# CHECK-ASM: encoding: [0x2f,0x17,0x14,0x0c]
amoswap.h.aq a4, ra, (s0)
# CHECK-ASM-AND-OBJ: amoadd.h.aq a1, a2, (a3)
# CHECK-ASM: encoding: [0xaf,0x95,0xc6,0x04]
amoadd.h.aq a1, a2, (a3)
# CHECK-ASM-AND-OBJ: amoxor.h.aq a2, a3, (a4)
# CHECK-ASM: encoding: [0x2f,0x16,0xd7,0x24]
amoxor.h.aq a2, a3, (a4)
# CHECK-ASM-AND-OBJ: amoand.h.aq a3, a4, (a5)
# CHECK-ASM: encoding: [0xaf,0x96,0xe7,0x64]
amoand.h.aq a3, a4, (a5)
# CHECK-ASM-AND-OBJ: amoor.h.aq a4, a5, (a6)
# CHECK-ASM: encoding: [0x2f,0x17,0xf8,0x44]
amoor.h.aq a4, a5, (a6)
# CHECK-ASM-AND-OBJ: amomin.h.aq a5, a6, (a7)
# CHECK-ASM: encoding: [0xaf,0x97,0x08,0x85]
amomin.h.aq a5, a6, (a7)
# CHECK-ASM-AND-OBJ: amomax.h.aq s7, s6, (s5)
# CHECK-ASM: encoding: [0xaf,0x9b,0x6a,0xa5]
amomax.h.aq s7, s6, (s5)
# CHECK-ASM-AND-OBJ: amominu.h.aq s6, s5, (s4)
# CHECK-ASM: encoding: [0x2f,0x1b,0x5a,0xc5]
amominu.h.aq s6, s5, (s4)
# CHECK-ASM-AND-OBJ: amomaxu.h.aq s5, s4, (s3)
# CHECK-ASM: encoding: [0xaf,0x9a,0x49,0xe5]
amomaxu.h.aq s5, s4, (s3)
# CHECK-ASM-AND-OBJ: amoswap.h.rl a4, ra, (s0)
# CHECK-ASM: encoding: [0x2f,0x17,0x14,0x0a]
amoswap.h.rl a4, ra, (s0)
# CHECK-ASM-AND-OBJ: amoadd.h.rl a1, a2, (a3)
# CHECK-ASM: encoding: [0xaf,0x95,0xc6,0x02]
amoadd.h.rl a1, a2, (a3)
# CHECK-ASM-AND-OBJ: amoxor.h.rl a2, a3, (a4)
# CHECK-ASM: encoding: [0x2f,0x16,0xd7,0x22]
amoxor.h.rl a2, a3, (a4)
# CHECK-ASM-AND-OBJ: amoand.h.rl a3, a4, (a5)
# CHECK-ASM: encoding: [0xaf,0x96,0xe7,0x62]
amoand.h.rl a3, a4, (a5)
# CHECK-ASM-AND-OBJ: amoor.h.rl a4, a5, (a6)
# CHECK-ASM: encoding: [0x2f,0x17,0xf8,0x42]
amoor.h.rl a4, a5, (a6)
# CHECK-ASM-AND-OBJ: amomin.h.rl a5, a6, (a7)
# CHECK-ASM: encoding: [0xaf,0x97,0x08,0x83]
amomin.h.rl a5, a6, (a7)
# CHECK-ASM-AND-OBJ: amomax.h.rl s7, s6, (s5)
# CHECK-ASM: encoding: [0xaf,0x9b,0x6a,0xa3]
amomax.h.rl s7, s6, (s5)
# CHECK-ASM-AND-OBJ: amominu.h.rl s6, s5, (s4)
# CHECK-ASM: encoding: [0x2f,0x1b,0x5a,0xc3]
amominu.h.rl s6, s5, (s4)
# CHECK-ASM-AND-OBJ: amomaxu.h.rl s5, s4, (s3)
# CHECK-ASM: encoding: [0xaf,0x9a,0x49,0xe3]
amomaxu.h.rl s5, s4, (s3)
# CHECK-ASM-AND-OBJ: amoswap.h.aqrl a4, ra, (s0)
# CHECK-ASM: encoding: [0x2f,0x17,0x14,0x0e]
amoswap.h.aqrl a4, ra, (s0)
# CHECK-ASM-AND-OBJ: amoadd.h.aqrl a1, a2, (a3)
# CHECK-ASM: encoding: [0xaf,0x95,0xc6,0x06]
amoadd.h.aqrl a1, a2, (a3)
# CHECK-ASM-AND-OBJ: amoxor.h.aqrl a2, a3, (a4)
# CHECK-ASM: encoding: [0x2f,0x16,0xd7,0x26]
amoxor.h.aqrl a2, a3, (a4)
# CHECK-ASM-AND-OBJ: amoand.h.aqrl a3, a4, (a5)
# CHECK-ASM: encoding: [0xaf,0x96,0xe7,0x66]
amoand.h.aqrl a3, a4, (a5)
# CHECK-ASM-AND-OBJ: amoor.h.aqrl a4, a5, (a6)
# CHECK-ASM: encoding: [0x2f,0x17,0xf8,0x46]
amoor.h.aqrl a4, a5, (a6)
# CHECK-ASM-AND-OBJ: amomin.h.aqrl a5, a6, (a7)
# CHECK-ASM: encoding: [0xaf,0x97,0x08,0x87]
amomin.h.aqrl a5, a6, (a7)
# CHECK-ASM-AND-OBJ: amomax.h.aqrl s7, s6, (s5)
# CHECK-ASM: encoding: [0xaf,0x9b,0x6a,0xa7]
amomax.h.aqrl s7, s6, (s5)
# CHECK-ASM-AND-OBJ: amominu.h.aqrl s6, s5, (s4)
# CHECK-ASM: encoding: [0x2f,0x1b,0x5a,0xc7]
amominu.h.aqrl s6, s5, (s4)
# CHECK-ASM-AND-OBJ: amomaxu.h.aqrl s5, s4, (s3)
# CHECK-ASM: encoding: [0xaf,0x9a,0x49,0xe7]
amomaxu.h.aqrl s5, s4, (s3)
|