1 ; RUN: llc -march=hexagon < %s | FileCheck %s 2 3 ; CHECK-LABEL: test_00: 4 ; CHECK: r0 = swiz(r0) 5 define <4 x i8> @test_00(<4 x i8> %a0) { 6 %p = shufflevector <4 x i8> %a0, <4 x i8> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0> 7 ret <4 x i8> %p 8 } 9 10 ; CHECK-LABEL: test_01: 11 ; CHECK: r0 = swiz(r0) 12 define <4 x i8> @test_01(<4 x i8> %a0) { 13 %p = shufflevector <4 x i8> %a0, <4 x i8> undef, <4 x i32> <i32 undef, i32 2, i32 1, i32 0> 14 ret <4 x i8> %p 15 } 16 17 ; CHECK-LABEL: test_02: 18 ; CHECK: r0 = swiz(r0) 19 define <4 x i8> @test_02(<4 x i8> %a0) { 20 %p = shufflevector <4 x i8> %a0, <4 x i8> undef, <4 x i32> <i32 3, i32 undef, i32 1, i32 0> 21 ret <4 x i8> %p 22 } 23 24 ; CHECK-LABEL: test_03: 25 ; CHECK: r0 = swiz(r0) 26 define <4 x i8> @test_03(<4 x i8> %a0) { 27 %p = shufflevector <4 x i8> %a0, <4 x i8> undef, <4 x i32> <i32 3, i32 2, i32 undef, i32 undef> 28 ret <4 x i8> %p 29 } 30 31 ; CHECK-LABEL: test_10: 32 ; CHECK: r0 = vtrunehb(r1:0) 33 define <4 x i8> @test_10(<4 x i8> %a0, <4 x i8> %a1) { 34 %p = shufflevector <4 x i8> %a0, <4 x i8> %a1, <4 x i32> <i32 0, i32 2, i32 4, i32 6> 35 ret <4 x i8> %p 36 } 37 38 ; CHECK-LABEL: test_11: 39 ; CHECK: r0 = vtrunehb(r1:0) 40 define <4 x i8> @test_11(<4 x i8> %a0, <4 x i8> %a1) { 41 %p = shufflevector <4 x i8> %a0, <4 x i8> %a1, <4 x i32> <i32 undef, i32 2, i32 4, i32 undef> 42 ret <4 x i8> %p 43 } 44 45 ; CHECK-LABEL: test_12: 46 ; CHECK: r0 = vtrunehb(r1:0) 47 define <4 x i8> @test_12(<4 x i8> %a0, <4 x i8> %a1) { 48 %p = shufflevector <4 x i8> %a0, <4 x i8> %a1, <4 x i32> <i32 0, i32 undef, i32 4, i32 6> 49 ret <4 x i8> %p 50 } 51 52 ; CHECK-LABEL: test_13: 53 ; CHECK: r0 = vtrunehb(r1:0) 54 define <4 x i8> @test_13(<4 x i8> %a0, <4 x i8> %a1) { 55 %p = shufflevector <4 x i8> %a0, <4 x i8> %a1, <4 x i32> <i32 0, i32 2, i32 undef, i32 undef> 56 ret <4 x i8> %p 57 } 58 59 ; CHECK-LABEL: test_20: 60 ; CHECK: r0 = vtrunohb(r1:0) 61 define <4 x i8> @test_20(<4 x i8> %a0, <4 x i8> %a1) { 62 %p = shufflevector <4 x i8> %a0, <4 x i8> %a1, <4 x i32> <i32 1, i32 3, i32 5, i32 7> 63 ret <4 x i8> %p 64 } 65 66 ; CHECK-LABEL: test_21: 67 ; CHECK: r0 = vtrunohb(r1:0) 68 define <4 x i8> @test_21(<4 x i8> %a0, <4 x i8> %a1) { 69 %p = shufflevector <4 x i8> %a0, <4 x i8> %a1, <4 x i32> <i32 undef, i32 3, i32 5, i32 7> 70 ret <4 x i8> %p 71 } 72 73 ; CHECK-LABEL: test_22: 74 ; CHECK: r0 = vtrunohb(r1:0) 75 define <4 x i8> @test_22(<4 x i8> %a0, <4 x i8> %a1) { 76 %p = shufflevector <4 x i8> %a0, <4 x i8> %a1, <4 x i32> <i32 undef, i32 undef, i32 5, i32 7> 77 ret <4 x i8> %p 78 } 79 80 ; CHECK-LABEL: test_23: 81 ; CHECK: r0 = vtrunohb(r1:0) 82 define <4 x i8> @test_23(<4 x i8> %a0, <4 x i8> %a1) { 83 %p = shufflevector <4 x i8> %a0, <4 x i8> %a1, <4 x i32> <i32 1, i32 3, i32 5, i32 undef> 84 ret <4 x i8> %p 85 } 86 87