Revert r354244 "[DAGCombiner] Eliminate dead stores to stack."
[llvm-complete.git] / test / CodeGen / Hexagon / autohvx / delta-64b.ll
blobc4961f549e5d68f4b9093b4605c959ba6b0966b2
1 ; RUN: llc -march=hexagon < %s | FileCheck %s
3 ; CHECK-LABEL: test_0000
4 ; CHECK: vdelta
5 define <64 x i8> @test_0000(<64 x i8> %v0) #0 {
6   %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 41, i32 41, i32 11, i32 11, i32 53, i32 53, i32 7, i32 7, i32 63, i32 63, i32 53, i32 53, i32 11, i32 11, i32 17, i32 17, i32 35, i32 35, i32 29, i32 29, i32 55, i32 55, i32 29, i32 29, i32 55, i32 55, i32 55, i32 55, i32 17, i32 17, i32 35, i32 35, i32 25, i32 25, i32 39, i32 39, i32 25, i32 25, i32 25, i32 25, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 27, i32 27, i32 39, i32 39, i32 53, i32 53, i32 25, i32 25, i32 25, i32 25, i32 43, i32 43, i32 45, i32 45, i32 25, i32 25, i32 25, i32 25>
7   ret <64 x i8> %p
10 ; CHECK-LABEL: test_0001
11 ; CHECK: vdelta
12 define <64 x i8> @test_0001(<64 x i8> %v0) #0 {
13   %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 33, i32 33, i32 33, i32 33, i32 63, i32 63, i32 61, i32 61, i32 19, i32 19, i32 19, i32 19, i32 55, i32 55, i32 61, i32 61, i32 61, i32 61, i32 7, i32 7, i32 61, i32 61, i32 3, i32 3, i32 33, i32 33, i32 33, i32 33, i32 7, i32 7, i32 61, i32 61, i32 21, i32 21, i32 21, i32 21, i32 27, i32 27, i32 21, i32 21, i32 63, i32 63, i32 63, i32 63, i32 41, i32 41, i32 19, i32 19, i32 3, i32 3, i32 3, i32 3, i32 37, i32 37, i32 37, i32 37, i32 3, i32 3, i32 3, i32 3, i32 55, i32 55, i32 41, i32 41>
14   ret <64 x i8> %p
17 ; CHECK-LABEL: test_0002
18 ; CHECK: vdelta
19 define <64 x i8> @test_0002(<64 x i8> %v0) #0 {
20   %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 55, i32 55, i32 59, i32 59, i32 13, i32 13, i32 9, i32 9, i32 9, i32 9, i32 19, i32 19, i32 19, i32 19, i32 61, i32 61, i32 19, i32 19, i32 61, i32 61, i32 61, i32 61, i32 15, i32 15, i32 61, i32 61, i32 1, i32 1, i32 35, i32 35, i32 1, i32 1, i32 15, i32 15, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 53, i32 53, i32 53, i32 53, i32 41, i32 41, i32 15, i32 15, i32 35, i32 35, i32 53, i32 53, i32 35, i32 35, i32 35, i32 35>
21   ret <64 x i8> %p
24 ; CHECK-LABEL: test_0003
25 ; CHECK: vdelta
26 define <64 x i8> @test_0003(<64 x i8> %v0) #0 {
27   %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 37, i32 37, i32 35, i32 35, i32 45, i32 45, i32 45, i32 45, i32 35, i32 35, i32 35, i32 35, i32 27, i32 27, i32 45, i32 45, i32 45, i32 45, i32 39, i32 39, i32 15, i32 15, i32 15, i32 15, i32 37, i32 37, i32 37, i32 37, i32 15, i32 15, i32 15, i32 15, i32 43, i32 43, i32 37, i32 37, i32 7, i32 7, i32 37, i32 37, i32 7, i32 7, i32 37, i32 37, i32 29, i32 29, i32 43, i32 43, i32 33, i32 33, i32 7, i32 7>
28   ret <64 x i8> %p
31 ; CHECK-LABEL: test_0004
32 ; CHECK: vdelta
33 define <64 x i8> @test_0004(<64 x i8> %v0) #0 {
34   %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 21, i32 21, i32 21, i32 21, i32 31, i32 31, i32 31, i32 31, i32 9, i32 9, i32 31, i32 31, i32 9, i32 9, i32 31, i32 31, i32 49, i32 49, i32 27, i32 27, i32 31, i32 31, i32 21, i32 21, i32 55, i32 55, i32 55, i32 55, i32 27, i32 27, i32 9, i32 9, i32 17, i32 17, i32 11, i32 11, i32 17, i32 17, i32 17, i32 17, i32 11, i32 11, i32 17, i32 17, i32 15, i32 15, i32 29, i32 29, i32 25, i32 25, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 37, i32 37, i32 27, i32 27, i32 27, i32 27, i32 25, i32 25>
35   ret <64 x i8> %p
38 ; CHECK-LABEL: test_0005
39 ; CHECK: vdelta
40 define <64 x i8> @test_0005(<64 x i8> %v0) #0 {
41   %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 13, i32 13, i32 43, i32 43, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 13, i32 13, i32 13, i32 13, i32 43, i32 43, i32 39, i32 39, i32 9, i32 9, i32 9, i32 9, i32 39, i32 39, i32 43, i32 43, i32 9, i32 9, i32 61, i32 61, i32 43, i32 43, i32 53, i32 53, i32 63, i32 63, i32 53, i32 53, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 53, i32 53, i32 27, i32 27, i32 53, i32 53, i32 15, i32 15, i32 53, i32 53, i32 17, i32 17, i32 39, i32 39, i32 39, i32 39, i32 39, i32 39>
42   ret <64 x i8> %p
45 ; CHECK-LABEL: test_0006
46 ; CHECK: vdelta
47 define <64 x i8> @test_0006(<64 x i8> %v0) #0 {
48   %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 29, i32 29, i32 31, i32 31, i32 29, i32 29, i32 29, i32 29, i32 11, i32 11, i32 37, i32 37, i32 11, i32 11, i32 11, i32 11, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 29, i32 29, i32 7, i32 7, i32 35, i32 35, i32 25, i32 25, i32 15, i32 15, i32 49, i32 49, i32 21, i32 21, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 49, i32 49, i32 7, i32 7, i32 41, i32 41, i32 41, i32 41, i32 7, i32 7, i32 41, i32 41, i32 7, i32 7, i32 41, i32 41, i32 41, i32 41>
49   ret <64 x i8> %p
52 ; CHECK-LABEL: test_0007
53 ; CHECK: vdelta
54 define <64 x i8> @test_0007(<64 x i8> %v0) #0 {
55   %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 43, i32 43, i32 43, i32 43, i32 47, i32 47, i32 47, i32 47, i32 7, i32 7, i32 57, i32 57, i32 45, i32 45, i32 45, i32 45, i32 23, i32 23, i32 33, i32 33, i32 23, i32 23, i32 45, i32 45, i32 31, i32 31, i32 31, i32 31, i32 45, i32 45, i32 31, i32 31, i32 43, i32 43, i32 37, i32 37, i32 25, i32 25, i32 15, i32 15, i32 37, i32 37, i32 37, i32 37, i32 37, i32 37, i32 37, i32 37, i32 15, i32 15, i32 1, i32 1, i32 15, i32 15, i32 15, i32 15, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43>
56   ret <64 x i8> %p
59 ; CHECK-LABEL: test_0008
60 ; CHECK: vdelta
61 define <64 x i8> @test_0008(<64 x i8> %v0) #0 {
62   %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 37, i32 37, i32 63, i32 63, i32 37, i32 37, i32 35, i32 35, i32 63, i32 63, i32 63, i32 63, i32 37, i32 37, i32 37, i32 37, i32 63, i32 63, i32 63, i32 63, i32 37, i32 37, i32 35, i32 35, i32 63, i32 63, i32 37, i32 37, i32 63, i32 63, i32 37, i32 37, i32 37, i32 37, i32 63, i32 63, i32 9, i32 9, i32 63, i32 63, i32 13, i32 13, i32 39, i32 39, i32 19, i32 19, i32 13, i32 13, i32 49, i32 49, i32 49, i32 49, i32 21, i32 21, i32 21, i32 21, i32 19, i32 19, i32 49, i32 49, i32 63, i32 63, i32 63, i32 63>
63   ret <64 x i8> %p
66 ; CHECK-LABEL: test_0009
67 ; CHECK: vdelta
68 define <64 x i8> @test_0009(<64 x i8> %v0) #0 {
69   %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 25, i32 25, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 25, i32 25, i32 25, i32 25, i32 19, i32 19, i32 25, i32 25, i32 35, i32 35, i32 41, i32 41, i32 41, i32 41, i32 41, i32 41, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 29, i32 29, i32 11, i32 11, i32 11, i32 11, i32 47, i32 47, i32 21, i32 21, i32 33, i32 33, i32 47, i32 47, i32 11, i32 11, i32 33, i32 33, i32 29, i32 29, i32 55, i32 55, i32 33, i32 33, i32 59, i32 59, i32 35, i32 35, i32 35, i32 35, i32 29, i32 29, i32 35, i32 35>
70   ret <64 x i8> %p
73 ; CHECK-LABEL: test_000a
74 ; CHECK: vdelta
75 define <64 x i8> @test_000a(<64 x i8> %v0) #0 {
76   %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 17, i32 17, i32 17, i32 17, i32 3, i32 3, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 43, i32 43, i32 33, i32 33, i32 33, i32 33, i32 19, i32 19, i32 5, i32 5, i32 13, i32 13, i32 27, i32 27, i32 7, i32 7, i32 33, i32 33, i32 1, i32 1, i32 1, i32 1, i32 13, i32 13, i32 13, i32 13, i32 25, i32 25, i32 15, i32 15, i32 15, i32 15, i32 25, i32 25, i32 35, i32 35, i32 25, i32 25, i32 25, i32 25, i32 35, i32 35, i32 1, i32 1, i32 7, i32 7, i32 5, i32 5, i32 7, i32 7>
77   ret <64 x i8> %p
80 ; CHECK-LABEL: test_000b
81 ; CHECK: vdelta
82 define <64 x i8> @test_000b(<64 x i8> %v0) #0 {
83   %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 29, i32 29, i32 15, i32 15, i32 63, i32 63, i32 63, i32 63, i32 11, i32 11, i32 11, i32 11, i32 53, i32 53, i32 53, i32 53, i32 39, i32 39, i32 53, i32 53, i32 59, i32 59, i32 49, i32 49, i32 39, i32 39, i32 13, i32 13, i32 59, i32 59, i32 59, i32 59, i32 57, i32 57, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 9, i32 9>
84   ret <64 x i8> %p
87 ; CHECK-LABEL: test_000c
88 ; CHECK: vdelta
89 define <64 x i8> @test_000c(<64 x i8> %v0) #0 {
90   %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 41, i32 41, i32 63, i32 63, i32 45, i32 45, i32 63, i32 63, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 43, i32 43, i32 53, i32 53, i32 23, i32 23, i32 23, i32 23, i32 35, i32 35, i32 41, i32 41, i32 35, i32 35, i32 35, i32 35, i32 31, i32 31, i32 17, i32 17, i32 17, i32 17, i32 35, i32 35, i32 41, i32 41, i32 41, i32 41, i32 37, i32 37, i32 37, i32 37, i32 33, i32 33, i32 31, i32 31, i32 13, i32 13, i32 31, i32 31>
91   ret <64 x i8> %p
94 ; CHECK-LABEL: test_000d
95 ; CHECK: vdelta
96 define <64 x i8> @test_000d(<64 x i8> %v0) #0 {
97   %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 47, i32 47, i32 47, i32 47, i32 47, i32 47, i32 53, i32 53, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 11, i32 11, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 9, i32 9, i32 27, i32 27, i32 9, i32 9, i32 27, i32 27, i32 9, i32 9, i32 9, i32 9, i32 27, i32 27, i32 27, i32 27, i32 35, i32 35, i32 35, i32 35, i32 17, i32 17, i32 35, i32 35, i32 21, i32 21, i32 21, i32 21, i32 35, i32 35, i32 57, i32 57>
98   ret <64 x i8> %p
101 ; CHECK-LABEL: test_000e
102 ; CHECK: vdelta
103 define <64 x i8> @test_000e(<64 x i8> %v0) #0 {
104   %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 27, i32 27, i32 13, i32 13, i32 13, i32 13, i32 7, i32 7, i32 63, i32 63, i32 13, i32 13, i32 27, i32 27, i32 13, i32 13, i32 13, i32 13, i32 63, i32 63, i32 43, i32 43, i32 9, i32 9, i32 21, i32 21, i32 19, i32 19, i32 21, i32 21, i32 55, i32 55, i32 5, i32 5, i32 19, i32 19, i32 63, i32 63, i32 5, i32 5, i32 49, i32 49, i32 11, i32 11, i32 63, i32 63, i32 63, i32 63, i32 33, i32 33, i32 33, i32 33, i32 59, i32 59, i32 33, i32 33, i32 5, i32 5, i32 59, i32 59, i32 55, i32 55, i32 5, i32 5>
105   ret <64 x i8> %p
108 ; CHECK-LABEL: test_000f
109 ; CHECK: vdelta
110 define <64 x i8> @test_000f(<64 x i8> %v0) #0 {
111   %p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 19, i32 19, i32 61, i32 61, i32 61, i32 61, i32 61, i32 61, i32 15, i32 15, i32 15, i32 15, i32 57, i32 57, i32 19, i32 19, i32 19, i32 19, i32 61, i32 61, i32 23, i32 23, i32 61, i32 61, i32 5, i32 5, i32 5, i32 5, i32 41, i32 41, i32 41, i32 41, i32 51, i32 51, i32 1, i32 1, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 7, i32 7, i32 29, i32 29, i32 7, i32 7, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 29, i32 29, i32 21, i32 21, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43>
112   ret <64 x i8> %p
115 attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length64b" }