Skip to content

Commit 79fd615

Browse files
committed
[SLP][NFC]Add a test with the segmented loads, NFC
1 parent c8a7f14 commit 79fd615

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
2+
; RUN: opt -S --passes=slp-vectorizer -mtriple=riscv64-unknown-linux -mattr=+v -pass-remarks-output=%t -mcpu=sifive-p670 < %s | FileCheck %s
3+
; RUN: FileCheck %s --check-prefix YAML --input-file=%t
4+
5+
; YAML-LABEL: --- !Passed
6+
; YAML-NEXT: Pass: slp-vectorizer
7+
; YAML-NEXT: Name: StoresVectorized
8+
; YAML-NEXT: Function: test
9+
; YAML-NEXT: Args:
10+
; YAML-NEXT: - String: 'Stores SLP vectorized with cost '
11+
; YAML-NEXT: - Cost: '-1'
12+
; YAML-NEXT: - String: ' and with tree size '
13+
; YAML-NEXT: - TreeSize: '2'
14+
define void @test(ptr %h) {
15+
; CHECK-LABEL: define void @test(
16+
; CHECK-SAME: ptr [[H:%.*]]) #[[ATTR0:[0-9]+]] {
17+
; CHECK-NEXT: [[ENTRY:.*:]]
18+
; CHECK-NEXT: [[DCT2X211:%.*]] = alloca [0 x [0 x [8 x i64]]], i32 0, align 16
19+
; CHECK-NEXT: [[CHROMA_DC209:%.*]] = getelementptr i8, ptr [[H]], i64 0
20+
; CHECK-NEXT: [[ARRAYIDX33_I:%.*]] = getelementptr i8, ptr [[DCT2X211]], i64 8
21+
; CHECK-NEXT: [[ARRAYIDX36_I181:%.*]] = getelementptr i8, ptr [[DCT2X211]], i64 24
22+
; CHECK-NEXT: [[TMP0:%.*]] = call <2 x i64> @llvm.experimental.vp.strided.load.v2i64.p0.i64(ptr align 4 [[DCT2X211]], i64 16, <2 x i1> splat (i1 true), i32 2)
23+
; CHECK-NEXT: store <2 x i64> [[TMP0]], ptr [[CHROMA_DC209]], align 2
24+
; CHECK-NEXT: [[TMP2:%.*]] = load i64, ptr [[ARRAYIDX33_I]], align 2
25+
; CHECK-NEXT: [[ARRAYIDX5_I226:%.*]] = getelementptr i8, ptr [[H]], i64 16
26+
; CHECK-NEXT: store i64 [[TMP2]], ptr [[ARRAYIDX5_I226]], align 2
27+
; CHECK-NEXT: [[TMP3:%.*]] = load i64, ptr [[ARRAYIDX36_I181]], align 2
28+
; CHECK-NEXT: [[ARRAYIDX7_I228:%.*]] = getelementptr i8, ptr [[H]], i64 24
29+
; CHECK-NEXT: store i64 [[TMP3]], ptr [[ARRAYIDX7_I228]], align 2
30+
; CHECK-NEXT: ret void
31+
;
32+
entry:
33+
%dct2x211 = alloca [0 x [0 x [8 x i64]]], i32 0, align 16
34+
%chroma_dc209 = getelementptr i8, ptr %h, i64 0
35+
%arrayidx30.i = getelementptr i8, ptr %dct2x211, i64 16
36+
%arrayidx33.i = getelementptr i8, ptr %dct2x211, i64 8
37+
%arrayidx36.i181 = getelementptr i8, ptr %dct2x211, i64 24
38+
%0 = load i64, ptr %dct2x211, align 16
39+
store i64 %0, ptr %chroma_dc209, align 2
40+
%1 = load i64, ptr %arrayidx30.i, align 4
41+
%arrayidx3.i224 = getelementptr i8, ptr %h, i64 8
42+
store i64 %1, ptr %arrayidx3.i224, align 2
43+
%2 = load i64, ptr %arrayidx33.i, align 2
44+
%arrayidx5.i226 = getelementptr i8, ptr %h, i64 16
45+
store i64 %2, ptr %arrayidx5.i226, align 2
46+
%3 = load i64, ptr %arrayidx36.i181, align 2
47+
%arrayidx7.i228 = getelementptr i8, ptr %h, i64 24
48+
store i64 %3, ptr %arrayidx7.i228, align 2
49+
ret void
50+
}
51+

0 commit comments

Comments
 (0)