1; RUN: opt -S < %s -slp-vectorizer -slp-max-reg-size=128 -slp-min-reg-size=128 | FileCheck %s
2
3declare void @llvm.sideeffect()
4
5; SLP vectorization across a @llvm.sideeffect.
6
7; CHECK-LABEL: test
8; CHECK: store <4 x float>
9define void @test(float* %p) {
10    %p0 = getelementptr float, float* %p, i64 0
11    %p1 = getelementptr float, float* %p, i64 1
12    %p2 = getelementptr float, float* %p, i64 2
13    %p3 = getelementptr float, float* %p, i64 3
14    %l0 = load float, float* %p0
15    %l1 = load float, float* %p1
16    %l2 = load float, float* %p2
17    call void @llvm.sideeffect()
18    %l3 = load float, float* %p3
19    store float %l0, float* %p0
20    call void @llvm.sideeffect()
21    store float %l1, float* %p1
22    store float %l2, float* %p2
23    store float %l3, float* %p3
24    ret void
25}
26