1# RUN: llvm-mc %s -triple=riscv32 -mattr=+c -M no-aliases -show-encoding \ 2# RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s 3# RUN: llvm-mc %s -triple riscv64 -mattr=+c -M no-aliases -show-encoding \ 4# RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s 5# RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+c < %s \ 6# RUN: | llvm-objdump -M no-aliases --no-print-imm-hex -d -r - \ 7# RUN: | FileCheck -check-prefixes=CHECK-ASM-AND-OBJ %s 8# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+c < %s \ 9# RUN: | llvm-objdump -M no-aliases --no-print-imm-hex -d -r - \ 10# RUN: | FileCheck -check-prefixes=CHECK-ASM-AND-OBJ %s 11# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+c < %s \ 12# RUN: | llvm-objdump --no-print-imm-hex -d -r - \ 13# RUN: | FileCheck -check-prefixes=CHECK-ASM-AND-OBJ %s 14 15# CHECK-ASM-AND-OBJ: c.nop 8 16# CHECK-ASM: encoding: [0x21,0x00] 17c.nop 8 18 19# CHECK-ASM-AND-OBJ: c.nop 7 20# CHECK-ASM: encoding: [0x1d,0x00] 21c.addi x0, 7 22 23# CHECK-ASM-AND-OBJ: c.addi a0, 0 24# CHECK-ASM: encoding: [0x01,0x05] 25c.addi a0, 0 26 27# CHECK-ASM-AND-OBJ: c.li zero, 0 28# CHECK-ASM: encoding: [0x01,0x40] 29c.li x0, 0 30 31# CHECK-ASM-AND-OBJ: c.li zero, 1 32# CHECK-ASM: encoding: [0x05,0x40] 33c.li x0, 1 34 35# CHECK-ASM-AND-OBJ: c.lui zero, 1 36# CHECK-ASM: encoding: [0x05,0x60] 37c.lui x0, 1 38 39# CHECK-ASM-AND-OBJ: c.mv zero, a0 40# CHECK-ASM: encoding: [0x2a,0x80] 41c.mv x0, a0 42 43# CHECK-ASM-AND-OBJ: c.add zero, a0 44# CHECK-ASM: encoding: [0x2a,0x90] 45c.add x0, a0 46 47# CHECK-ASM-AND-OBJ: c.slli zero, 1 48# CHECK-ASM: encoding: [0x06,0x00] 49c.slli x0, 1 50 51# CHECK-ASM-AND-OBJ: c.slli64 zero 52# CHECK-ASM: encoding: [0x02,0x00] 53c.slli64 x0 54 55# CHECK-ASM-AND-OBJ: c.slli64 a0 56# CHECK-ASM: encoding: [0x02,0x05] 57c.slli64 a0 58 59# CHECK-ASM-AND-OBJ: c.srli64 a1 60# CHECK-ASM: encoding: [0x81,0x81] 61c.srli64 a1 62 63# CHECK-ASM-AND-OBJ: c.srai64 a0 64# CHECK-ASM: encoding: [0x01,0x85] 65c.srai64 a0 66