aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/MachineVerifier
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@sifive.com>2023-10-30 10:27:57 -0700
committerGitHub <noreply@github.com>2023-10-30 10:27:57 -0700
commit9a7c26a399a827a5eb6ec5a2c5895c1bb5b08c54 (patch)
treefe19d96f9bf0526d53c3ff17887db5882316a766 /llvm/test/MachineVerifier
parent7358c26d6acaa6c393623fde7cbc70372d0c67a8 (diff)
downloadllvm-9a7c26a399a827a5eb6ec5a2c5895c1bb5b08c54.zip
llvm-9a7c26a399a827a5eb6ec5a2c5895c1bb5b08c54.tar.gz
llvm-9a7c26a399a827a5eb6ec5a2c5895c1bb5b08c54.tar.bz2
[GISel] Restrict G_BSWAP to multiples of 16 bits. (#70245)
This is consistent with the IR verifier and SelectionDAG's getNode. Update tests accordingly. I tried to keep some coverage of non-pow2 when possible. X86 didn't like a G_UNMERGE_VALUES from s48 to 3 s16 that got created when I tried s48.
Diffstat (limited to 'llvm/test/MachineVerifier')
-rw-r--r--llvm/test/MachineVerifier/test_g_bswap.mir19
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/test/MachineVerifier/test_g_bswap.mir b/llvm/test/MachineVerifier/test_g_bswap.mir
new file mode 100644
index 0000000..679114f
--- /dev/null
+++ b/llvm/test/MachineVerifier/test_g_bswap.mir
@@ -0,0 +1,19 @@
+#RUN: not --crash llc -mtriple=aarch64 -o - -global-isel -run-pass=none -verify-machineinstrs %s 2>&1 | FileCheck %s
+# REQUIRES: aarch64-registered-target
+
+---
+name: test_bswap
+legalized: true
+regBankSelected: false
+selected: false
+tracksRegLiveness: true
+liveins:
+body: |
+ bb.0:
+
+ %0:_(s17) = G_CONSTANT i32 17
+
+ ; CHECK: Bad machine code: G_BSWAP size must be a multiple of 16 bits
+ %1:_(s17) = G_BSWAP %0
+
+...