; RUN: llc -march=hexagon < %s | FileCheck %s ; CHECK-LABEL: test_0000 ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vmux ; CHECK-DAG: vmux define <128 x i8> @test_0000(<128 x i8> %v0) #0 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } ; CHECK-LABEL: test_0001 ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vmux ; CHECK-DAG: vmux define <128 x i8> @test_0001(<128 x i8> %v0) #0 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } ; CHECK-LABEL: test_0002 ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vmux ; CHECK-DAG: vmux define <128 x i8> @test_0002(<128 x i8> %v0) #0 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } ; CHECK-LABEL: test_0003 ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vmux ; CHECK-DAG: vmux define <128 x i8> @test_0003(<128 x i8> %v0) #0 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } ; CHECK-LABEL: test_0004 ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vmux ; CHECK-DAG: vmux define <128 x i8> @test_0004(<128 x i8> %v0) #0 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } ; CHECK-LABEL: test_0005 ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vmux ; CHECK-DAG: vmux define <128 x i8> @test_0005(<128 x i8> %v0) #0 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } ; CHECK-LABEL: test_0006 ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vmux ; CHECK-DAG: vmux define <128 x i8> @test_0006(<128 x i8> %v0) #0 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } ; CHECK-LABEL: test_0007 ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vmux ; CHECK-DAG: vmux define <128 x i8> @test_0007(<128 x i8> %v0) #0 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } ; CHECK-LABEL: test_0008 ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vmux ; CHECK-DAG: vmux define <128 x i8> @test_0008(<128 x i8> %v0) #0 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } ; CHECK-LABEL: test_0009 ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vmux ; CHECK-DAG: vmux define <128 x i8> @test_0009(<128 x i8> %v0) #0 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } ; CHECK-LABEL: test_000a ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vmux ; CHECK-DAG: vmux define <128 x i8> @test_000a(<128 x i8> %v0) #0 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } ; CHECK-LABEL: test_000b ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vmux ; CHECK-DAG: vmux define <128 x i8> @test_000b(<128 x i8> %v0) #0 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } ; CHECK-LABEL: test_000c ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vmux ; CHECK-DAG: vmux define <128 x i8> @test_000c(<128 x i8> %v0) #0 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } ; CHECK-LABEL: test_000d ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vmux ; CHECK-DAG: vmux define <128 x i8> @test_000d(<128 x i8> %v0) #0 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } ; CHECK-LABEL: test_000e ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vmux ; CHECK-DAG: vmux define <128 x i8> @test_000e(<128 x i8> %v0) #0 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } ; CHECK-LABEL: test_000f ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vdelta ; CHECK-DAG: vmux ; CHECK-DAG: vmux define <128 x i8> @test_000f(<128 x i8> %v0) #0 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length64b" }