diff options
author | Craig Topper <craig.topper@sifive.com> | 2023-10-30 10:27:57 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-30 10:27:57 -0700 |
commit | 9a7c26a399a827a5eb6ec5a2c5895c1bb5b08c54 (patch) | |
tree | fe19d96f9bf0526d53c3ff17887db5882316a766 /llvm/test/MachineVerifier | |
parent | 7358c26d6acaa6c393623fde7cbc70372d0c67a8 (diff) | |
download | llvm-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.mir | 19 |
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 + +... |