64 lines · plain
1# RUN: not --crash llc -o - -run-pass=none -verify-machineinstrs -mtriple=arm64 %s 2>&1 | FileCheck %s2# REQUIRES: aarch64-registered-target3---4name: g_extract_subvector5tracksRegLiveness: true6liveins:7body: |8 bb.0:9 %0:_(s32) = G_CONSTANT i32 010 %1:_(<vscale x 2 x s32>) = G_IMPLICIT_DEF11 %2:_(<vscale x 1 x s32>) = G_IMPLICIT_DEF12 13 ; CHECK: generic instruction must use register operands14 ; CHECK: G_EXTRACT_SUBVECTOR first source must be a register15 %3:_(<vscale x 2 x s32>) = G_EXTRACT_SUBVECTOR 1, 016 17 ; CHECK: G_EXTRACT_SUBVECTOR index must be an immediate18 %4:_(<vscale x 1 x s32>) = G_EXTRACT_SUBVECTOR %2, %019 20 ; CHECK: Destination type must be a vector21 %5:_(s32) = G_EXTRACT_SUBVECTOR %2, 022 23 ; CHECK: Source must be a vector24 %6:_(<vscale x 2 x s32>) = G_EXTRACT_SUBVECTOR %0, 025 26 %7:_(<vscale x 1 x s16>) = G_IMPLICIT_DEF27 28 ; CHECK: Element type of vectors must be the same29 %8:_(<vscale x 2 x s32>) = G_EXTRACT_SUBVECTOR %7, 030 31 ; CHECK: Destination vector must be smaller than source vector32 %9:_(<vscale x 4 x s32>) = G_EXTRACT_SUBVECTOR %1, 333 34 ; CHECK: Destination vector must be smaller than source vector35 %10:_(<vscale x 4 x s32>) = G_EXTRACT_SUBVECTOR %1, 236 37 ; CHECK: Destination type and index must not cause extract to overrun the source vector38 %11:_(<vscale x 1 x s32>) = G_EXTRACT_SUBVECTOR %1, 439 40 %12:_(<vscale x 4 x s32>) = G_IMPLICIT_DEF41 42 ; CHECK: Destination type and index must not cause extract to overrun the source vector43 %13:_(<vscale x 3 x s32>) = G_EXTRACT_SUBVECTOR %12, 344 45 %14:_(<2 x s32>) = G_IMPLICIT_DEF46 %15:_(<4 x s32>) = G_IMPLICIT_DEF47 48 ; CHECK: Destination type and index must not cause extract to overrun the source vector49 %16:_(<2 x s32>) = G_EXTRACT_SUBVECTOR %14, 450 51 ; CHECK: Destination type and index must not cause extract to overrun the source vector52 %17:_(<3 x s32>) = G_EXTRACT_SUBVECTOR %15, 353 54 ; CHECK: Vector types must both be fixed or both be scalable55 %18:_(<vscale x 2 x s32>) = G_EXTRACT_SUBVECTOR %15, 056 57 ; CHECK: Vector types must both be fixed or both be scalable58 %19:_(<2 x s32>) = G_EXTRACT_SUBVECTOR %12, 059 60 ; CHECK: Index must be a multiple of the destination vector's minimum vector length61 %20:_(<vscale x 2 x s32>) = G_EXTRACT_SUBVECTOR %12, 162 63...64