; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5 ; RUN: llc < %s -mtriple=riscv64 -mattr=+v -global-isel -stop-after=riscv-prelegalizer-combiner | FileCheck %s ; Make sure we don't crash in the prelegalizer combiner for scalable vector ; insert and extracts. define @insertelement_nxv1i1_0( %x) { ; CHECK-LABEL: name: insertelement_nxv1i1_0 ; CHECK: bb.1 (%ir-block.0): ; CHECK-NEXT: liveins: $v0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $v0 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s1) = G_CONSTANT i1 false ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 0 ; CHECK-NEXT: [[IVEC:%[0-9]+]]:_() = G_INSERT_VECTOR_ELT [[COPY]], [[C]](s1), [[C1]](s64) ; CHECK-NEXT: $v0 = COPY [[IVEC]]() ; CHECK-NEXT: PseudoRET implicit $v0 %a = insertelement %x, i1 0, i32 0 ret %a } define @shufflevector_nxv1i1_0( %x) { ; CHECK-LABEL: name: shufflevector_nxv1i1_0 ; CHECK: bb.1 (%ir-block.0): ; CHECK-NEXT: liveins: $v0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $v0 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0 ; CHECK-NEXT: [[EVEC:%[0-9]+]]:_(s1) = G_EXTRACT_VECTOR_ELT [[COPY]](), [[C]](s64) ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_() = G_SPLAT_VECTOR [[EVEC]](s1) ; CHECK-NEXT: $v0 = COPY [[SPLAT_VECTOR]]() ; CHECK-NEXT: PseudoRET implicit $v0 %a = shufflevector %x, poison, poison ret %a }