xref: /llvm-project/llvm/test/Transforms/SLPVectorizer/RISCV/repeated-address-store.ll (revision 62db1c8a076c7167e404412182f4a8915f4ff6ee)
1dec38399SAlexey Bataev; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
2dec38399SAlexey Bataev; RUN: opt -S --passes=slp-vectorizer -mtriple=riscv64-unknown-linux -mattr=+v < %s | FileCheck %s
3dec38399SAlexey Bataev
4dec38399SAlexey Bataevdefine void @test(ptr %dest) {
5dec38399SAlexey Bataev; CHECK-LABEL: define void @test(
6dec38399SAlexey Bataev; CHECK-SAME: ptr [[DEST:%.*]]) #[[ATTR0:[0-9]+]] {
7dec38399SAlexey Bataev; CHECK-NEXT:  [[ENTRY:.*:]]
8dec38399SAlexey Bataev; CHECK-NEXT:    [[INC3:%.*]] = getelementptr inbounds i32, ptr [[DEST]], i64 3
9*62db1c8aSAlexey Bataev; CHECK-NEXT:    store <4 x i32> splat (i32 1), ptr [[DEST]], align 4
10dec38399SAlexey Bataev; CHECK-NEXT:    store i32 2, ptr [[DEST]], align 2
11dec38399SAlexey Bataev; CHECK-NEXT:    store i32 1, ptr [[INC3]], align 2
12dec38399SAlexey Bataev; CHECK-NEXT:    ret void
13dec38399SAlexey Bataev;
14dec38399SAlexey Bataeventry:
15dec38399SAlexey Bataev  %inc3 = getelementptr inbounds i32, ptr %dest, i64 3
16dec38399SAlexey Bataev  store i32 1, ptr %inc3, align 2
17dec38399SAlexey Bataev
18dec38399SAlexey Bataev  store i32 1, ptr %dest, align 4
19dec38399SAlexey Bataev  %inc1 = getelementptr inbounds i32, ptr %dest, i64 1
20dec38399SAlexey Bataev  store i32 1, ptr %inc1, align 2
21dec38399SAlexey Bataev  %inc2 = getelementptr inbounds i32, ptr %dest, i64 2
22dec38399SAlexey Bataev  store i32 1, ptr %inc2, align 2
23dec38399SAlexey Bataev  store i32 2, ptr %dest, align 2
24dec38399SAlexey Bataev  store i32 1, ptr %inc3, align 2
25dec38399SAlexey Bataev  ret void
26dec38399SAlexey Bataev}
27