xref: /llvm-project/llvm/test/Transforms/SLPVectorizer/gep-with-extractelement-many-users.ll (revision 706e71076e0276747e7ae94e3f8a7f73a45e5b6e)
1*706e7107SElvina Yakubova; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4
2*706e7107SElvina Yakubova; RUN: %if x86-registered-target %{ opt -S --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu -slp-threshold=-99999 < %s | FileCheck %s %}
3*706e7107SElvina Yakubova; RUN: %if aarch64-registered-target %{ opt -S --passes=slp-vectorizer -mtriple=aarch64-unknown-linux-gnu -slp-threshold=-99999 < %s | FileCheck %s %}
4*706e7107SElvina Yakubova
5*706e7107SElvina Yakubovadefine void @test() {
6*706e7107SElvina Yakubova; CHECK-LABEL: define void @test() {
7*706e7107SElvina Yakubova; CHECK-NEXT:  bb:
8*706e7107SElvina Yakubova; CHECK-NEXT:    store double 0.000000e+00, ptr inttoptr (i64 872 to ptr), align 8
9*706e7107SElvina Yakubova; CHECK-NEXT:    br label [[BB9:%.*]]
10*706e7107SElvina Yakubova; CHECK:       bb9:
11*706e7107SElvina Yakubova; CHECK-NEXT:    [[TMP1:%.*]] = phi <2 x ptr> [ getelementptr (i8, <2 x ptr> zeroinitializer, <2 x i64> <i64 32, i64 872>), [[BB:%.*]] ]
12*706e7107SElvina Yakubova; CHECK-NEXT:    ret void
13*706e7107SElvina Yakubova;
14*706e7107SElvina Yakubovabb:
15*706e7107SElvina Yakubova  %getelementptr = getelementptr i8, ptr null, i64 32
16*706e7107SElvina Yakubova  %0 = extractelement <2 x ptr> zeroinitializer, i32 0
17*706e7107SElvina Yakubova  %getelementptr6 = getelementptr i8, ptr %0, i64 872
18*706e7107SElvina Yakubova  store double 0.000000e+00, ptr %getelementptr6, align 8
19*706e7107SElvina Yakubova  br label %bb9
20*706e7107SElvina Yakubova
21*706e7107SElvina Yakubovabb9:
22*706e7107SElvina Yakubova  %phi10 = phi ptr [ %getelementptr, %bb ]
23*706e7107SElvina Yakubova  %phi11 = phi ptr [ %getelementptr6, %bb ]
24*706e7107SElvina Yakubova  ret void
25*706e7107SElvina Yakubova}
26