Revert r354244 "[DAGCombiner] Eliminate dead stores to stack."
[llvm-complete.git] / test / CodeGen / Hexagon / intrinsics / v65-gather.ll
blobbc8591527c0d6ab27f66a4bb0547c01668ce74ad
1 ; RUN: llc -mv65 -mattr=+hvxv65,hvx-length64b -march=hexagon -O2 < %s | FileCheck %s
3 ; CHECK-LABEL: V6_vgathermw
4 ; CHECK: vtmp.w = vgather(r1,m{{[0-9]+}},v{{[0-9]+}}.w).w
5 ; CHECK: vmem(r{{[0-9]+}}+#0) = vtmp.new
6 ; CHECK-LABEL: V6_vgathermh
7 ; CHECK: vtmp.h = vgather(r1,m{{[0-9]+}},v{{[0-9]+}}.h).h
8 ; CHECK: vmem(r{{[0-9]+}}+#0) = vtmp.new
9 ; CHECK-LABEL: V6_vgathermhw
10 ; CHECK: vtmp.h = vgather(r1,m{{[0-9]+}},v{{[0-9]+}}:{{[0-9]+}}.w).h
11 ; CHECK: vmem(r{{[0-9]+}}+#0) = vtmp.new
12 ; CHECK-LABEL: V6_vgathermwq
13 ; CHECK: if (q{{[0-3]+}}) vtmp.w = vgather(r1,m{{[0-9]+}},v{{[0-9]+}}.w).w
14 ; CHECK: vmem(r{{[0-9]+}}+#0) = vtmp.new
15 ; CHECK-LABEL: V6_vgathermhq
16 ; CHECK: if (q{{[0-3]+}}) vtmp.h = vgather(r1,m{{[0-9]+}},v{{[0-9]+}}.h).h
17 ; CHECK: vmem(r{{[0-9]+}}+#0) = vtmp.new
18 ; CHECK-LABEL: V6_vgathermhwq
19 ; CHECK: if (q{{[0-3]+}}) vtmp.h = vgather(r1,m{{[0-9]+}},v{{[0-9]+}}:{{[0-9]+}}.w).h
20 ; CHECK: vmem(r{{[0-9]+}}+#0) = vtmp.new
22 declare void @llvm.hexagon.V6.vgathermw(i8*, i32, i32, <16 x i32>)
23 define void @V6_vgathermw(i8* %a, i32 %b, i32 %c, <16 x i32> %d) {
24   call void @llvm.hexagon.V6.vgathermw(i8* %a, i32 %b, i32 %c, <16 x i32> %d)
25   ret void
28 declare void @llvm.hexagon.V6.vgathermh(i8*, i32, i32, <16 x i32>)
29 define void @V6_vgathermh(i8* %a, i32 %b, i32 %c, <16 x i32> %d) {
30   call void @llvm.hexagon.V6.vgathermh(i8* %a, i32 %b, i32 %c, <16 x i32> %d)
31   ret void
34 declare void @llvm.hexagon.V6.vgathermhw(i8*, i32, i32, <32 x i32>)
35 define void @V6_vgathermhw(i8* %a, i32 %b, i32 %c, <32 x i32> %d) {
36   call void @llvm.hexagon.V6.vgathermhw(i8* %a, i32 %b, i32 %c, <32 x i32> %d)
37   ret void
40 declare void @llvm.hexagon.V6.vgathermwq(i8*, <512 x i1>, i32, i32, <16 x i32>)
41 define void @V6_vgathermwq(i8* %a, <16 x i32> %b, i32 %c, i32 %d, <16 x i32> %e) {
42   %1 = bitcast <16 x i32> %b to <512 x i1>
43   call void @llvm.hexagon.V6.vgathermwq(i8* %a, <512 x i1> %1, i32 %c, i32 %d, <16 x i32> %e)
44   ret void
47 declare void @llvm.hexagon.V6.vgathermhq(i8*, <512 x i1>, i32, i32, <16 x i32>)
48 define void @V6_vgathermhq(i8* %a, <16 x i32> %b, i32 %c, i32 %d, <16 x i32> %e) {
49   %1 = bitcast <16 x i32> %b to <512 x i1>
50   call void @llvm.hexagon.V6.vgathermhq(i8* %a, <512 x i1> %1, i32 %c, i32 %d, <16 x i32> %e)
51   ret void
54 declare void @llvm.hexagon.V6.vgathermhwq(i8*, <512 x i1>, i32, i32, <32 x i32>)
55 define void @V6_vgathermhwq(i8* %a, <16 x i32> %b, i32 %c, i32 %d, <32 x i32> %e) {
56   %1 = bitcast <16 x i32> %b to <512 x i1>
57   call void @llvm.hexagon.V6.vgathermhwq(i8* %a, <512 x i1> %1, i32 %c, i32 %d, <32 x i32> %e)
58   ret void