; RUN: llc -march=hexagon < %s | FileCheck %s ; CHECK-LABEL: concat_8: ; CHECK: v[[H00:[0-9]+]]:[[L00:[0-9]+]] = vcombine(v0,v1) ; CHECK: v1:0 = vcombine(v[[H00]],v[[L00]]) define <128 x i8> @concat_8(<64 x i8> %v0, <64 x i8> %v1) #0 { %p = shufflevector <64 x i8> %v0, <64 x i8> %v1, <128 x i32> ret <128 x i8> %p } ; CHECK-LABEL: concat_16: ; CHECK: v[[H10:[0-9]+]]:[[L10:[0-9]+]] = vcombine(v0,v1) ; CHECK: v1:0 = vcombine(v[[H10]],v[[L10]]) define <64 x i16> @concat_16(<32 x i16> %v0, <32 x i16> %v1) #0 { %p = shufflevector <32 x i16> %v0, <32 x i16> %v1, <64 x i32> ret <64 x i16> %p } ; CHECK-LABEL: concat_32: ; CHECK: v[[H20:[0-9]+]]:[[L20:[0-9]+]] = vcombine(v0,v1) ; CHECK: v1:0 = vcombine(v[[H20]],v[[L20]]) define <32 x i32> @concat_32(<16 x i32> %v0, <16 x i32> %v1) #0 { %p = shufflevector <16 x i32> %v0, <16 x i32> %v1, <32 x i32> ret <32 x i32> %p } attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length64b" }