[rtsan] Add fork/execve interceptors (#117198)
[llvm-project.git] / llvm / test / Transforms / ConstantHoisting / ARM / gep-struct-index.ll
blob5016edb1cb441aee35fd4a01d76a5143b8262974
1 ; RUN: opt -passes=consthoist -S < %s | FileCheck %s
2 target triple = "thumbv6m-none-eabi"
4 %T = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
5 i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
6 i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
7 i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
8 i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
9 i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
10 i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
11 i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
12 i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
13 i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
14 i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
15 i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
16 i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
17 i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
18 i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
19 i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
20 i32, i32, i32, i32, i32, i32 }
22 ; Indices for GEPs should not be hoisted.
23 define i32 @test1(ptr %P) nounwind {
24 ; CHECK-LABEL:  @test1
25 ; CHECK:        %addr1 = getelementptr %T, ptr %P, i32 256, i32 256
26 ; CHECK:        %addr2 = getelementptr %T, ptr %P, i32 256, i32 256
27   %addr1 = getelementptr %T, ptr %P, i32 256, i32 256
28   %tmp1 = load i32, ptr %addr1
29   %addr2 = getelementptr %T, ptr %P, i32 256, i32 256
30   %tmp2 = load i32, ptr %addr2
31   %tmp4 = add i32 %tmp1, %tmp2
32   ret i32 %tmp4