Skip to content

Commit d6b5b98

Browse files
authored
[SLP][NFC] Add a new test for store chains that mix different sizes of values (#101979)
1 parent 9f6b440 commit d6b5b98

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
2+
; RUN: opt -S --passes=slp-vectorizer -mtriple=x86_64-unknown-linux < %s | FileCheck %s
3+
define void @test(ptr %p) {
4+
; CHECK-LABEL: define void @test(
5+
; CHECK-SAME: ptr [[P:%.*]]) {
6+
; CHECK-NEXT: [[ENTRY:.*:]]
7+
; CHECK-NEXT: [[IDX1:%.*]] = getelementptr i8, ptr [[P]], i64 1
8+
; CHECK-NEXT: store i8 0, ptr [[IDX1]], align 4
9+
; CHECK-NEXT: [[IDX_64_9:%.*]] = getelementptr i64, ptr [[P]], i64 9
10+
; CHECK-NEXT: store i64 1, ptr [[IDX_64_9]], align 8
11+
; CHECK-NEXT: [[IDX2:%.*]] = getelementptr i8, ptr [[P]], i64 2
12+
; CHECK-NEXT: store <4 x i8> zeroinitializer, ptr [[IDX2]], align 4
13+
; CHECK-NEXT: [[IDX6:%.*]] = getelementptr i8, ptr [[P]], i64 6
14+
; CHECK-NEXT: store i8 0, ptr [[IDX6]], align 4
15+
; CHECK-NEXT: [[IDX7:%.*]] = getelementptr i8, ptr [[P]], i64 7
16+
; CHECK-NEXT: store i8 0, ptr [[IDX7]], align 4
17+
; CHECK-NEXT: [[IDX8:%.*]] = getelementptr i8, ptr [[P]], i64 8
18+
; CHECK-NEXT: store i8 0, ptr [[IDX8]], align 4
19+
; CHECK-NEXT: ret void
20+
;
21+
entry:
22+
%idx1 = getelementptr i8, ptr %p, i64 1
23+
store i8 0, ptr %idx1, align 4
24+
%idx.64.9 = getelementptr i64, ptr %p, i64 9
25+
store i64 1, ptr %idx.64.9, align 8
26+
%idx2 = getelementptr i8, ptr %p, i64 2
27+
store i8 0, ptr %idx2, align 4
28+
%idx3 = getelementptr i8, ptr %p, i64 3
29+
store i8 0, ptr %idx3, align 4
30+
%idx4 = getelementptr i8, ptr %p, i64 4
31+
store i8 0, ptr %idx4, align 4
32+
%idx5 = getelementptr i8, ptr %p, i64 5
33+
store i8 0, ptr %idx5, align 4
34+
%idx6 = getelementptr i8, ptr %p, i64 6
35+
store i8 0, ptr %idx6, align 4
36+
%idx7 = getelementptr i8, ptr %p, i64 7
37+
store i8 0, ptr %idx7, align 4
38+
%idx8 = getelementptr i8, ptr %p, i64 8
39+
store i8 0, ptr %idx8, align 4
40+
ret void
41+
}

0 commit comments

Comments
 (0)