; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5 ; RUN: llc -mtriple=aarch64-linux-gnu -O0 -mattr=+sve -global-isel -global-isel-abort=1 -aarch64-enable-gisel-sve=1 \ ; RUN: -stop-after=irtranslator -verify-machineinstrs %s -o - | FileCheck %s ;; vscale x 128-bit define void @formal_argument_nxv16i8( %0) { ; CHECK-LABEL: name: formal_argument_nxv16i8 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv8i16( %0) { ; CHECK-LABEL: name: formal_argument_nxv8i16 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv4i32( %0) { ; CHECK-LABEL: name: formal_argument_nxv4i32 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv2i64( %0) { ; CHECK-LABEL: name: formal_argument_nxv2i64 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv4f32( %0) { ; CHECK-LABEL: name: formal_argument_nxv4f32 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv2f64( %0) { ; CHECK-LABEL: name: formal_argument_nxv2f64 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv2p0( %0) { ; CHECK-LABEL: name: formal_argument_nxv2p0 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: RET_ReallyLR ret void } ;; vscale x 256-bit define void @formal_argument_nxv32i8( %0) { ; CHECK-LABEL: name: formal_argument_nxv32i8 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[COPY]](), [[COPY1]]() ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv16i16( %0) { ; CHECK-LABEL: name: formal_argument_nxv16i16 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[COPY]](), [[COPY1]]() ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv8i32( %0) { ; CHECK-LABEL: name: formal_argument_nxv8i32 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[COPY]](), [[COPY1]]() ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv4i64( %0) { ; CHECK-LABEL: name: formal_argument_nxv4i64 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[COPY]](), [[COPY1]]() ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv8f32( %0) { ; CHECK-LABEL: name: formal_argument_nxv8f32 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[COPY]](), [[COPY1]]() ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv4f64( %0) { ; CHECK-LABEL: name: formal_argument_nxv4f64 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[COPY]](), [[COPY1]]() ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv4p0( %0) { ; CHECK-LABEL: name: formal_argument_nxv4p0 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_() = G_BITCAST [[COPY]]() ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:_() = G_BITCAST [[COPY1]]() ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[BITCAST]](), [[BITCAST1]]() ; CHECK-NEXT: RET_ReallyLR ret void } ;; vscale x 512-bit define void @formal_argument_nxv64i8( %0) { ; CHECK-LABEL: name: formal_argument_nxv64i8 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1, $z2, $z3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_() = COPY $z2 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_() = COPY $z3 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[COPY]](), [[COPY1]](), [[COPY2]](), [[COPY3]]() ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv32i16( %0) { ; CHECK-LABEL: name: formal_argument_nxv32i16 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1, $z2, $z3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_() = COPY $z2 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_() = COPY $z3 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[COPY]](), [[COPY1]](), [[COPY2]](), [[COPY3]]() ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv16i32( %0) { ; CHECK-LABEL: name: formal_argument_nxv16i32 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1, $z2, $z3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_() = COPY $z2 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_() = COPY $z3 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[COPY]](), [[COPY1]](), [[COPY2]](), [[COPY3]]() ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv8i64( %0) { ; CHECK-LABEL: name: formal_argument_nxv8i64 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1, $z2, $z3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_() = COPY $z2 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_() = COPY $z3 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[COPY]](), [[COPY1]](), [[COPY2]](), [[COPY3]]() ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv16f32( %0) { ; CHECK-LABEL: name: formal_argument_nxv16f32 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1, $z2, $z3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_() = COPY $z2 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_() = COPY $z3 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[COPY]](), [[COPY1]](), [[COPY2]](), [[COPY3]]() ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv8f64( %0) { ; CHECK-LABEL: name: formal_argument_nxv8f64 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1, $z2, $z3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_() = COPY $z2 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_() = COPY $z3 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[COPY]](), [[COPY1]](), [[COPY2]](), [[COPY3]]() ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv8p0( %0) { ; CHECK-LABEL: name: formal_argument_nxv8p0 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1, $z2, $z3 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_() = COPY $z2 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_() = COPY $z3 ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_() = G_BITCAST [[COPY]]() ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:_() = G_BITCAST [[COPY1]]() ; CHECK-NEXT: [[BITCAST2:%[0-9]+]]:_() = G_BITCAST [[COPY2]]() ; CHECK-NEXT: [[BITCAST3:%[0-9]+]]:_() = G_BITCAST [[COPY3]]() ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[BITCAST]](), [[BITCAST1]](), [[BITCAST2]](), [[BITCAST3]]() ; CHECK-NEXT: RET_ReallyLR ret void } ;; vscale x 1024-bit define void @formal_argument_nxv128i8( %0) { ; CHECK-LABEL: name: formal_argument_nxv128i8 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1, $z2, $z3, $z4, $z5, $z6, $z7 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_() = COPY $z2 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_() = COPY $z3 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_() = COPY $z4 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_() = COPY $z5 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_() = COPY $z6 ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_() = COPY $z7 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[COPY]](), [[COPY1]](), [[COPY2]](), [[COPY3]](), [[COPY4]](), [[COPY5]](), [[COPY6]](), [[COPY7]]() ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv64i16( %0) { ; CHECK-LABEL: name: formal_argument_nxv64i16 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1, $z2, $z3, $z4, $z5, $z6, $z7 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_() = COPY $z2 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_() = COPY $z3 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_() = COPY $z4 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_() = COPY $z5 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_() = COPY $z6 ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_() = COPY $z7 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[COPY]](), [[COPY1]](), [[COPY2]](), [[COPY3]](), [[COPY4]](), [[COPY5]](), [[COPY6]](), [[COPY7]]() ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv32i32( %0) { ; CHECK-LABEL: name: formal_argument_nxv32i32 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1, $z2, $z3, $z4, $z5, $z6, $z7 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_() = COPY $z2 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_() = COPY $z3 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_() = COPY $z4 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_() = COPY $z5 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_() = COPY $z6 ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_() = COPY $z7 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[COPY]](), [[COPY1]](), [[COPY2]](), [[COPY3]](), [[COPY4]](), [[COPY5]](), [[COPY6]](), [[COPY7]]() ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv16i64( %0) { ; CHECK-LABEL: name: formal_argument_nxv16i64 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1, $z2, $z3, $z4, $z5, $z6, $z7 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_() = COPY $z2 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_() = COPY $z3 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_() = COPY $z4 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_() = COPY $z5 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_() = COPY $z6 ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_() = COPY $z7 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[COPY]](), [[COPY1]](), [[COPY2]](), [[COPY3]](), [[COPY4]](), [[COPY5]](), [[COPY6]](), [[COPY7]]() ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv32f32( %0) { ; CHECK-LABEL: name: formal_argument_nxv32f32 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1, $z2, $z3, $z4, $z5, $z6, $z7 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_() = COPY $z2 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_() = COPY $z3 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_() = COPY $z4 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_() = COPY $z5 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_() = COPY $z6 ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_() = COPY $z7 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[COPY]](), [[COPY1]](), [[COPY2]](), [[COPY3]](), [[COPY4]](), [[COPY5]](), [[COPY6]](), [[COPY7]]() ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv16f64( %0) { ; CHECK-LABEL: name: formal_argument_nxv16f64 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1, $z2, $z3, $z4, $z5, $z6, $z7 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_() = COPY $z2 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_() = COPY $z3 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_() = COPY $z4 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_() = COPY $z5 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_() = COPY $z6 ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_() = COPY $z7 ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[COPY]](), [[COPY1]](), [[COPY2]](), [[COPY3]](), [[COPY4]](), [[COPY5]](), [[COPY6]](), [[COPY7]]() ; CHECK-NEXT: RET_ReallyLR ret void } define void @formal_argument_nxv16p0( %0) { ; CHECK-LABEL: name: formal_argument_nxv16p0 ; CHECK: bb.1 (%ir-block.1): ; CHECK-NEXT: liveins: $z0, $z1, $z2, $z3, $z4, $z5, $z6, $z7 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_() = COPY $z0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_() = COPY $z1 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_() = COPY $z2 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_() = COPY $z3 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_() = COPY $z4 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_() = COPY $z5 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_() = COPY $z6 ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_() = COPY $z7 ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_() = G_BITCAST [[COPY]]() ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:_() = G_BITCAST [[COPY1]]() ; CHECK-NEXT: [[BITCAST2:%[0-9]+]]:_() = G_BITCAST [[COPY2]]() ; CHECK-NEXT: [[BITCAST3:%[0-9]+]]:_() = G_BITCAST [[COPY3]]() ; CHECK-NEXT: [[BITCAST4:%[0-9]+]]:_() = G_BITCAST [[COPY4]]() ; CHECK-NEXT: [[BITCAST5:%[0-9]+]]:_() = G_BITCAST [[COPY5]]() ; CHECK-NEXT: [[BITCAST6:%[0-9]+]]:_() = G_BITCAST [[COPY6]]() ; CHECK-NEXT: [[BITCAST7:%[0-9]+]]:_() = G_BITCAST [[COPY7]]() ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_() = G_CONCAT_VECTORS [[BITCAST]](), [[BITCAST1]](), [[BITCAST2]](), [[BITCAST3]](), [[BITCAST4]](), [[BITCAST5]](), [[BITCAST6]](), [[BITCAST7]]() ; CHECK-NEXT: RET_ReallyLR ret void }