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
|
# Xqcicm - Qualcomm uC Conditional Move Extension
# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-xqcicm -M no-aliases -show-encoding \
# RUN: | FileCheck -check-prefixes=CHECK-ENC,CHECK-INST,CHECK-NOALIAS %s
# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+experimental-xqcicm < %s \
# RUN: | llvm-objdump --mattr=+experimental-xqcicm -M no-aliases --no-print-imm-hex -d - \
# RUN: | FileCheck -check-prefix=CHECK-INST %s
# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-xqcicm -show-encoding \
# RUN: | FileCheck -check-prefixes=CHECK-ENC,CHECK-INST,CHECK-ALIAS %s
# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+experimental-xqcicm < %s \
# RUN: | llvm-objdump --mattr=+experimental-xqcicm --no-print-imm-hex -d - \
# RUN: | FileCheck -check-prefix=CHECK-INST %s
# CHECK-NOALIAS: qc.c.mveqz s1, a0
# CHECK-ALIAS: qc.mveqi s1, s1, 0, a0
# CHECK-ENC: encoding: [0x06,0xad]
qc.c.mveqz x9, x10
# CHECK-INST: qc.mveq s1, a0, a1, a2
# CHECK-ENC: encoding: [0xdb,0x04,0xb5,0x60]
qc.mveq x9, x10, x11, x12
# CHECK-INST: qc.mvge s1, a0, a1, a2
# CHECK-ENC: encoding: [0xdb,0x54,0xb5,0x60]
qc.mvge x9, x10, x11, x12
# CHECK-INST: qc.mvgeu s1, a0, a1, a2
# CHECK-ENC: encoding: [0xdb,0x74,0xb5,0x60]
qc.mvgeu x9, x10, x11, x12
# CHECK-INST: qc.mvlt s1, a0, a1, a2
# CHECK-ENC: encoding: [0xdb,0x44,0xb5,0x60]
qc.mvlt x9, x10, x11, x12
# CHECK-INST: qc.mvltu s1, a0, a1, a2
# CHECK-ENC: encoding: [0xdb,0x64,0xb5,0x60]
qc.mvltu x9, x10, x11, x12
# CHECK-INST: qc.mvne s1, a0, a1, a2
# CHECK-ENC: encoding: [0xdb,0x14,0xb5,0x60]
qc.mvne x9, x10, x11, x12
# CHECK-INST: qc.mveqi s1, a0, 5, a2
# CHECK-ENC: encoding: [0xdb,0x04,0x55,0x64]
qc.mveqi x9, x10, 5, x12
# CHECK-INST: qc.mveqi s1, a0, -16, a2
# CHECK-ENC: encoding: [0xdb,0x04,0x05,0x65]
qc.mveqi x9, x10, -16, x12
# CHECK-INST: qc.mveqi s1, a0, 15, a2
# CHECK-ENC: encoding: [0xdb,0x04,0xf5,0x64]
qc.mveqi x9, x10, 15, x12
# CHECK-INST: qc.mvgei s1, a0, 5, a2
# CHECK-ENC: encoding: [0xdb,0x54,0x55,0x64]
qc.mvgei x9, x10, 5, x12
# CHECK-INST: qc.mvgei s1, a0, -16, a2
# CHECK-ENC: encoding: [0xdb,0x54,0x05,0x65]
qc.mvgei x9, x10, -16, x12
# CHECK-INST: qc.mvgei s1, a0, 15, a2
# CHECK-ENC: encoding: [0xdb,0x54,0xf5,0x64]
qc.mvgei x9, x10, 15, x12
# CHECK-INST: qc.mvlti s1, a0, 5, a2
# CHECK-ENC: encoding: [0xdb,0x44,0x55,0x64]
qc.mvlti x9, x10, 5, x12
# CHECK-INST: qc.mvlti s1, a0, -16, a2
# CHECK-ENC: encoding: [0xdb,0x44,0x05,0x65]
qc.mvlti x9, x10, -16, x12
# CHECK-INST: qc.mvlti s1, a0, 15, a2
# CHECK-ENC: encoding: [0xdb,0x44,0xf5,0x64]
qc.mvlti x9, x10, 15, x12
# CHECK-INST: qc.mvnei s1, a0, 5, a2
# CHECK-ENC: encoding: [0xdb,0x14,0x55,0x64]
qc.mvnei x9, x10, 5, x12
# CHECK-INST: qc.mvnei s1, a0, -16, a2
# CHECK-ENC: encoding: [0xdb,0x14,0x05,0x65]
qc.mvnei x9, x10, -16, x12
# CHECK-INST: qc.mvnei s1, a0, 15, a2
# CHECK-ENC: encoding: [0xdb,0x14,0xf5,0x64]
qc.mvnei x9, x10, 15, x12
# CHECK-INST: qc.mvltui s1, a0, 5, a2
# CHECK-ENC: encoding: [0xdb,0x64,0x55,0x64]
qc.mvltui x9, x10, 5, x12
# CHECK-INST: qc.mvltui s1, a0, 0, a2
# CHECK-ENC: encoding: [0xdb,0x64,0x05,0x64]
qc.mvltui x9, x10, 0, x12
# CHECK-INST: qc.mvltui s1, a0, 31, a2
# CHECK-ENC: encoding: [0xdb,0x64,0xf5,0x65]
qc.mvltui x9, x10, 31, x12
# CHECK-INST: qc.mvgeui s1, a0, 5, a2
# CHECK-ENC: encoding: [0xdb,0x74,0x55,0x64]
qc.mvgeui x9, x10, 5, x12
# CHECK-INST: qc.mvgeui s1, a0, 0, a2
# CHECK-ENC: encoding: [0xdb,0x74,0x05,0x64]
qc.mvgeui x9, x10, 0, x12
# CHECK-INST: qc.mvgeui s1, a0, 31, a2
# CHECK-ENC: encoding: [0xdb,0x74,0xf5,0x65]
qc.mvgeui x9, x10, 31, x12
# Check that compress pattern for qc.mveqi works
# CHECK-NOALIAS: qc.c.mveqz s1, a2
# CHECK-ALIAS: qc.mveqi s1, s1, 0, a2
# CHECK-ENC: encoding: [0x06,0xae]
qc.mveqi x9, x9, 0, x12
# CHECK-NOALIAS: qc.c.mveqz s1, a2
# CHECK-ALIAS: qc.mveqi s1, s1, 0, a2
# CHECK-ENC: encoding: [0x06,0xae]
qc.mvltui x9, x9, 1, x12
# Following instruction should not be compressed
# CHECK-INST: qc.mveqi a0, s1, 0, a2
# CHECK-ENC: encoding: [0x5b,0x85,0x04,0x64]
qc.mveqi x10, x9, 0, x12
|