; RUN: llc -march=hexagon < %s | FileCheck %s ; CHECK-LABEL: test_vdealb_64: ; CHECK: v0.b = vdeal(v0.b) define <64 x i8> @test_vdealb_64(<64 x i8> %v0) #0 { %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32> ret <64 x i8> %p } ; CHECK-LABEL: test_vdealh_64: ; CHECK: v0.h = vdeal(v0.h) define <64 x i8> @test_vdealh_64(<64 x i8> %v0) #0 { %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32> ret <64 x i8> %p } ; CHECK-LABEL: test_vshuffb_64: ; CHECK: v0.b = vshuff(v0.b) define <64 x i8> @test_vshuffb_64(<64 x i8> %v0) #0 { %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32> ret <64 x i8> %p } ; CHECK-LABEL: test_vshuffh_64: ; CHECK: v0.h = vshuff(v0.h) define <64 x i8> @test_vshuffh_64(<64 x i8> %v0) #0 { %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32> ret <64 x i8> %p } ; CHECK-LABEL: test_vdealb_128: ; CHECK: v0.b = vdeal(v0.b) define <128 x i8> @test_vdealb_128(<128 x i8> %v0) #1 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } ; CHECK-LABEL: test_vdealh_128: ; CHECK: v0.h = vdeal(v0.h) define <128 x i8> @test_vdealh_128(<128 x i8> %v0) #1 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } ; CHECK-LABEL: test_vshuffb_128: ; CHECK: v0.b = vshuff(v0.b) define <128 x i8> @test_vshuffb_128(<128 x i8> %v0) #1 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } ; CHECK-LABEL: test_vshuffh_128: ; CHECK: v0.h = vshuff(v0.h) define <128 x i8> @test_vshuffh_128(<128 x i8> %v0) #1 { %p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> ret <128 x i8> %p } attributes #0 = { readnone nounwind "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length64b" } attributes #1 = { readnone nounwind "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length128b" }