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