| # RUN: not --crash llc -mtriple=aarch64 -run-pass=none -filetype=null %s 2>&1 | FileCheck %s | |
| # REQUIRES: aarch64-registered-target | |
| --- | |
| name: test_icmp | |
| body: | | |
| bb.0: | |
| %0:_(s32) = G_CONSTANT i32 0 | |
| %1:_(s32) = G_CONSTANT i32 1 | |
| ; Vector result, scalar source | |
| ; CHECK: Bad machine code: Generic vector icmp/fcmp must preserve number of lanes | |
| %2:_(<2 x s1>) = G_ICMP intpred(eq), %0, %1 | |
| ; Scalar result, vector source | |
| ; CHECK: Bad machine code: Generic vector icmp/fcmp must preserve number of lanes | |
| %3:_(<2 x s32>) = G_IMPLICIT_DEF | |
| %4:_(<2 x s32>) = G_IMPLICIT_DEF | |
| %5:_(s1) = G_ICMP intpred(eq), %3, %4 | |
| ; mismatched fixed element count | |
| ; CHECK: Bad machine code: Generic vector icmp/fcmp must preserve number of | |
| %6:_(<2 x s32>) = G_IMPLICIT_DEF | |
| %7:_(<2 x s32>) = G_IMPLICIT_DEF | |
| %8:_(<4 x s1>) = G_ICMP intpred(eq), %6, %7 | |
| ; mismatched scalable element count | |
| ; CHECK: Bad machine code: Generic vector icmp/fcmp must preserve number of | |
| %9:_(<vscale x 2 x s32>) = G_IMPLICIT_DEF | |
| %10:_(<vscale x 2 x s32>) = G_IMPLICIT_DEF | |
| %11:_(<vscale x 4 x s1>) = G_ICMP intpred(eq), %9, %10 | |
| ; mismatched scalar element type | |
| ; CHECK: Bad machine code: Type mismatch in generic instruction | |
| %12:_(s32) = G_CONSTANT i32 0 | |
| %13:_(s64) = G_CONSTANT i32 1 | |
| %14:_(s1) = G_ICMP intpred(eq), %12, %13 | |
| ... |