diff options
| -rw-r--r-- | llvm/include/llvm/Support/AArch64TargetParser.def | 3 | ||||
| -rw-r--r-- | llvm/lib/Target/AArch64/AArch64.td | 1 | ||||
| -rw-r--r-- | llvm/test/MC/AArch64/basic-a64-instructions.s | 17 | ||||
| -rw-r--r-- | llvm/test/MC/AArch64/crc.s | 45 | ||||
| -rw-r--r-- | llvm/test/MC/AArch64/cyclone-crc.s | 27 | ||||
| -rw-r--r-- | llvm/test/MC/AArch64/directive-arch-negative.s | 6 | ||||
| -rw-r--r-- | llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt | 17 |
7 files changed, 52 insertions, 64 deletions
diff --git a/llvm/include/llvm/Support/AArch64TargetParser.def b/llvm/include/llvm/Support/AArch64TargetParser.def index 1700deadeae..8881698caa8 100644 --- a/llvm/include/llvm/Support/AArch64TargetParser.def +++ b/llvm/include/llvm/Support/AArch64TargetParser.def @@ -20,8 +20,7 @@ AARCH64_ARCH("invalid", AK_INVALID, nullptr, nullptr, ARMBuildAttrs::CPUArch::v8_A, FK_NONE, AArch64::AEK_NONE) AARCH64_ARCH("armv8-a", AK_ARMV8A, "8-A", "v8", ARMBuildAttrs::CPUArch::v8_A, FK_CRYPTO_NEON_FP_ARMV8, - (AArch64::AEK_CRC | AArch64::AEK_CRYPTO | AArch64::AEK_FP | - AArch64::AEK_SIMD)) + (AArch64::AEK_CRYPTO | AArch64::AEK_FP | AArch64::AEK_SIMD)) AARCH64_ARCH("armv8.1-a", AK_ARMV8_1A, "8.1-A", "v8.1a", ARMBuildAttrs::CPUArch::v8_A, FK_CRYPTO_NEON_FP_ARMV8, (AArch64::AEK_CRC | AArch64::AEK_CRYPTO | AArch64::AEK_FP | diff --git a/llvm/lib/Target/AArch64/AArch64.td b/llvm/lib/Target/AArch64/AArch64.td index 519ca289468..73f2b6a25f6 100644 --- a/llvm/lib/Target/AArch64/AArch64.td +++ b/llvm/lib/Target/AArch64/AArch64.td @@ -358,7 +358,6 @@ def ProcThunderXT83 : SubtargetFeature<"thunderxt83", "ARMProcFamily", FeatureNEON]>; def : ProcessorModel<"generic", NoSchedModel, [ - FeatureCRC, FeatureFPARMv8, FeatureNEON, FeaturePerfMon, diff --git a/llvm/test/MC/AArch64/basic-a64-instructions.s b/llvm/test/MC/AArch64/basic-a64-instructions.s index 8a82c99eb8c..46b2397ec73 100644 --- a/llvm/test/MC/AArch64/basic-a64-instructions.s +++ b/llvm/test/MC/AArch64/basic-a64-instructions.s @@ -1496,23 +1496,6 @@ _func: // Data-processing (2 source) //------------------------------------------------------------------------------ - crc32b w5, w7, w20 - crc32h w28, wzr, w30 - crc32w w0, w1, w2 - crc32x w7, w9, x20 - crc32cb w9, w5, w4 - crc32ch w13, w17, w25 - crc32cw wzr, w3, w5 - crc32cx w18, w16, xzr -// CHECK: crc32b w5, w7, w20 // encoding: [0xe5,0x40,0xd4,0x1a] -// CHECK: crc32h w28, wzr, w30 // encoding: [0xfc,0x47,0xde,0x1a] -// CHECK: crc32w w0, w1, w2 // encoding: [0x20,0x48,0xc2,0x1a] -// CHECK: crc32x w7, w9, x20 // encoding: [0x27,0x4d,0xd4,0x9a] -// CHECK: crc32cb w9, w5, w4 // encoding: [0xa9,0x50,0xc4,0x1a] -// CHECK: crc32ch w13, w17, w25 // encoding: [0x2d,0x56,0xd9,0x1a] -// CHECK: crc32cw wzr, w3, w5 // encoding: [0x7f,0x58,0xc5,0x1a] -// CHECK: crc32cx w18, w16, xzr // encoding: [0x12,0x5e,0xdf,0x9a] - udiv w0, w7, w10 udiv x9, x22, x4 sdiv w12, w21, w0 diff --git a/llvm/test/MC/AArch64/crc.s b/llvm/test/MC/AArch64/crc.s new file mode 100644 index 00000000000..f0e4a5aa753 --- /dev/null +++ b/llvm/test/MC/AArch64/crc.s @@ -0,0 +1,45 @@ +// RUN: llvm-mc -triple aarch64-- -mattr=+crc %s 2>&1 |\ +// RUN: FileCheck %s --check-prefix=CRC + +// RUN: not llvm-mc -triple aarch64-- %s 2>&1 |\ +// RUN: FileCheck %s --check-prefix=NOCRC +// RUN: not llvm-mc -triple aarch64-- -mcpu=cyclone %s 2>&1 |\ +// RUN: FileCheck %s --check-prefix=NOCRC + + crc32b w0, w1, w5 + crc32h w3, w5, w6 + crc32w w19, wzr, w20 + crc32x w3, w5, x20 + +// CRC: crc32b w0, w1, w5 +// CRC: crc32h w3, w5, w6 +// CRC: crc32w w19, wzr, w20 +// CRC: crc32x w3, w5, x20 + +// NOCRC: error: instruction requires: crc +// NOCRC: crc32b w0, w1, w5 +// NOCRC: error: instruction requires: crc +// NOCRC: crc32h w3, w5, w6 +// NOCRC: error: instruction requires: crc +// NOCRC: crc32w w19, wzr, w20 +// NOCRC: error: instruction requires: crc +// NOCRC: crc32x w3, w5, x20 + + crc32cb w5, w10, w15 + crc32ch w3, w5, w7 + crc32cw w11, w13, w17 + crc32cx w19, w23, x29 + +// CRC: crc32cb w5, w10, w15 +// CRC: crc32ch w3, w5, w7 +// CRC: crc32cw w11, w13, w17 +// CRC: crc32cx w19, w23, x29 + +// NOCRC: error: instruction requires: crc +// NOCRC: crc32cb w5, w10, w15 +// NOCRC: error: instruction requires: crc +// NOCRC: crc32ch w3, w5, w7 +// NOCRC: error: instruction requires: crc +// NOCRC: crc32cw w11, w13, w17 +// NOCRC: error: instruction requires: crc +// NOCRC: crc32cx w19, w23, x29 diff --git a/llvm/test/MC/AArch64/cyclone-crc.s b/llvm/test/MC/AArch64/cyclone-crc.s deleted file mode 100644 index 5786df51dde..00000000000 --- a/llvm/test/MC/AArch64/cyclone-crc.s +++ /dev/null @@ -1,27 +0,0 @@ -// RUN: not llvm-mc -triple arm64-apple-ios -mcpu=cyclone %s 2>&1 | FileCheck %s - - crc32b w0, w1, w5 - crc32h w3, w5, w6 - crc32w w19, wzr, w20 - crc32x w3, w5, x20 -CHECK: error: instruction requires: crc -CHECK: crc32b w0, w1, w5 -CHECK: error: instruction requires: crc -CHECK: crc32h w3, w5, w6 -CHECK: error: instruction requires: crc -CHECK: crc32w w19, wzr, w20 -CHECK: error: instruction requires: crc -CHECK: crc32x w3, w5, x20 - - crc32cb w5, w10, w15 - crc32ch w3, w5, w7 - crc32cw w11, w13, w17 - crc32cx w19, w23, x29 -CHECK: error: instruction requires: crc -CHECK: crc32cb w5, w10, w15 -CHECK: error: instruction requires: crc -CHECK: crc32ch w3, w5, w7 -CHECK: error: instruction requires: crc -CHECK: crc32cw w11, w13, w17 -CHECK: error: instruction requires: crc -CHECK: crc32cx w19, w23, x29 diff --git a/llvm/test/MC/AArch64/directive-arch-negative.s b/llvm/test/MC/AArch64/directive-arch-negative.s index 21fd90ebdf1..2991d2499eb 100644 --- a/llvm/test/MC/AArch64/directive-arch-negative.s +++ b/llvm/test/MC/AArch64/directive-arch-negative.s @@ -44,6 +44,12 @@ # CHECK: error: instruction requires: lse # CHECK: casa w5, w7, [x19] + .arch armv8+crypto + crc32b w0, w1, w2 + +# CHECK: error: instruction requires: crc +# CHECK: crc32b w0, w1, w2 + .arch armv8.1-a+nolse casa w5, w7, [x20] diff --git a/llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt b/llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt index 4d438e032e7..a2f9d24091e 100644 --- a/llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt +++ b/llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt @@ -1042,23 +1042,6 @@ # Data-processing (2 source) #------------------------------------------------------------------------------ -# CHECK: crc32b w5, w7, w20 -# CHECK: crc32h w28, wzr, w30 -# CHECK: crc32w w0, w1, w2 -# CHECK: crc32x w7, w9, x20 -# CHECK: crc32cb w9, w5, w4 -# CHECK: crc32ch w13, w17, w25 -# CHECK: crc32cw wzr, w3, w5 -# CHECK: crc32cx w18, w16, xzr -0xe5 0x40 0xd4 0x1a -0xfc 0x47 0xde 0x1a -0x20 0x48 0xc2 0x1a -0x27 0x4d 0xd4 0x9a -0xa9 0x50 0xc4 0x1a -0x2d 0x56 0xd9 0x1a -0x7f 0x58 0xc5 0x1a -0x12 0x5e 0xdf 0x9a - # CHECK: udiv w0, w7, w10 # CHECK: udiv x9, x22, x4 # CHECK: sdiv w12, w21, w0 |

