diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-01-22 00:29:37 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-01-22 00:29:37 +0000 |
| commit | c19e17dd902fdd9857733d67664fc4e04e3c0dc0 (patch) | |
| tree | 46e54235c80e894698852201f8b2b8535c8b8c7f /llvm/test/Verifier | |
| parent | 23e60c7893dc1c24d81e721de047514899f5e8ff (diff) | |
| download | bcm5719-llvm-c19e17dd902fdd9857733d67664fc4e04e3c0dc0.tar.gz bcm5719-llvm-c19e17dd902fdd9857733d67664fc4e04e3c0dc0.zip | |
GlobalISel: Fix out of bounds crashes in verifier
llvm-svn: 351769
Diffstat (limited to 'llvm/test/Verifier')
| -rw-r--r-- | llvm/test/Verifier/test_g_add.mir | 28 | ||||
| -rw-r--r-- | llvm/test/Verifier/test_g_trunc.mir | 23 |
2 files changed, 51 insertions, 0 deletions
diff --git a/llvm/test/Verifier/test_g_add.mir b/llvm/test/Verifier/test_g_add.mir new file mode 100644 index 00000000000..54c470adc8a --- /dev/null +++ b/llvm/test/Verifier/test_g_add.mir @@ -0,0 +1,28 @@ +#RUN: not llc -o - -global-isel -run-pass=none -verify-machineinstrs %s 2>&1 | FileCheck %s +# REQUIRES: global-isel, aarch64-registered-target + +--- +name: test_add +legalized: true +regBankSelected: false +selected: false +tracksRegLiveness: true +liveins: +body: | + bb.0: + + %0:_(s32) = G_CONSTANT i32 0 + %1:_(s32) = G_CONSTANT i32 1 + + ; CHECK: Bad machine code: Too few operands + %2:_(s32) = G_ADD + + ; CHECK: Bad machine code: Too few operands + %3:_(s32) = G_ADD %0 + %4:_(s32) = G_ADD %0, %1 + + ; CHECK: Bad machine code: Too few operands + ; CHECK: Bad machine code: Explicit definition marked as use + G_ADD %0, %1 + +... diff --git a/llvm/test/Verifier/test_g_trunc.mir b/llvm/test/Verifier/test_g_trunc.mir new file mode 100644 index 00000000000..3a196bb7bbd --- /dev/null +++ b/llvm/test/Verifier/test_g_trunc.mir @@ -0,0 +1,23 @@ +# RUN: not llc -o - -global-isel -run-pass=none -verify-machineinstrs %s 2>&1 | FileCheck %s +# REQUIRES: global-isel, aarch64-registered-target + +--- +name: test_trunc +legalized: true +regBankSelected: false +selected: false +tracksRegLiveness: true +liveins: +body: | + bb.0: + + ; CHECK: Bad machine code: Too few operands + %0:_(s32) = G_TRUNC + + %1:_(s64) = G_IMPLICIT_DEF + + ; CHECK: Bad machine code: Too few operands + ; CHECK: Bad machine code: Explicit definition marked as use + G_TRUNC %1 + +... |

