Skip to content

Commit c449a64

Browse files
committed
[SLP][NFC]Add the test shoing issue with -slp-vectorize-hor-store
option, NFC.
1 parent c34efe3 commit c449a64

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 3
2+
; RUN: opt -passes=slp-vectorizer -slp-vectorize-hor -slp-vectorize-hor-store -S < %s -mtriple=x86_64-unknown-linux | FileCheck %s
3+
4+
@arr_i32 = global [32 x i32] zeroinitializer, align 16
5+
define void @test(ptr noalias %pl, ptr noalias %res, ptr noalias %p2) {
6+
; CHECK-LABEL: define void @test(
7+
; CHECK-SAME: ptr noalias [[PL:%.*]], ptr noalias [[RES:%.*]], ptr noalias [[P2:%.*]]) {
8+
; CHECK-NEXT: entry:
9+
; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr @arr_i32, align 16
10+
; CHECK-NEXT: [[TMP1:%.*]] = load i32, ptr getelementptr inbounds ([32 x i32], ptr @arr_i32, i64 0, i64 1), align 4
11+
; CHECK-NEXT: [[ADD:%.*]] = add nsw i32 [[TMP1]], [[TMP0]]
12+
; CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr getelementptr inbounds ([32 x i32], ptr @arr_i32, i64 0, i64 2), align 8
13+
; CHECK-NEXT: [[ADD_1:%.*]] = add nsw i32 [[TMP2]], [[ADD]]
14+
; CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr getelementptr inbounds ([32 x i32], ptr @arr_i32, i64 0, i64 3), align 4
15+
; CHECK-NEXT: [[ADD_2:%.*]] = add nsw i32 [[TMP3]], [[ADD_1]]
16+
; CHECK-NEXT: store i32 [[ADD_2]], ptr [[P2]], align 16
17+
; CHECK-NEXT: store i32 [[ADD_2]], ptr [[RES]], align 16
18+
; CHECK-NEXT: ret void
19+
;
20+
entry:
21+
%0 = load i32, ptr @arr_i32, align 16
22+
%1 = load i32, ptr getelementptr inbounds ([32 x i32], ptr @arr_i32, i64 0, i64 1), align 4
23+
%add = add nsw i32 %1, %0
24+
%2 = load i32, ptr getelementptr inbounds ([32 x i32], ptr @arr_i32, i64 0, i64 2), align 8
25+
%add.1 = add nsw i32 %2, %add
26+
%3 = load i32, ptr getelementptr inbounds ([32 x i32], ptr @arr_i32, i64 0, i64 3), align 4
27+
%add.2 = add nsw i32 %3, %add.1
28+
store i32 %add.2, ptr %p2, align 16
29+
store i32 %add.2, ptr %res, align 16
30+
ret void
31+
}
32+

0 commit comments

Comments
 (0)