xref: /llvm-project/llvm/test/Assembler/ConstantExprNoFold.ll (revision 2f1229e40ecc200f76da1864cd0861a4c51bf917)
1; This test checks to make sure that constant exprs don't fold in some simple
2; situations
3
4; RUN: llvm-as < %s | llvm-dis | FileCheck %s
5; RUN: verify-uselistorder %s
6
7; Even give it a datalayout, to tempt folding as much as possible.
8target datalayout = "p:32:32"
9
10@A = global i64 0
11@B = global i64 0
12
13; CHECK: @E = global ptr addrspace(1) addrspacecast (ptr @A to ptr addrspace(1))
14@E = global ptr addrspace(1) addrspacecast(ptr @A to ptr addrspace(1))
15
16; Don't add an inbounds on @weak.gep, since @weak may be null.
17; CHECK: @weak.gep = global ptr getelementptr (i32, ptr @weak, i32 1)
18@weak.gep = global ptr getelementptr (i32, ptr @weak, i32 1)
19@weak = extern_weak global i32
20
21; Don't add an inbounds on @glob.a3, since it's not inbounds.
22; CHECK: @glob.a3 = alias i32, getelementptr (i32, ptr @glob.a2, i32 1)
23@glob = global i32 0
24@glob.a3 = alias i32, getelementptr (i32, ptr @glob.a2, i32 1)
25@glob.a2 = alias i32, getelementptr (i32, ptr @glob.a1, i32 1)
26@glob.a1 = alias i32, ptr @glob
27