| ; This test checks to make sure that constant exprs fold in some simple situations | 
 |  | 
 | ; RUN: llvm-as < %s | llvm-dis | FileCheck %s | 
 | ; RUN: verify-uselistorder %s | 
 |  | 
 | ; CHECK-NOT: bitcast | 
 | ; CHECK-NOT: trunc | 
 | ; CHECK: addrspacecast | 
 | ; CHECK: addrspacecast | 
 |  | 
 | @A = global ptr null  ; Cast null -> fold | 
 | @B = global ptr @A   ; Cast to same type -> fold | 
 | @C = global i32 trunc (i64 42 to i32)        ; Integral casts | 
 | @D = global ptr @C  ; cast of cast ptr->ptr | 
 | @E = global i32 ptrtoint(ptr inttoptr (i8 5 to ptr) to i32)  ; i32 -> ptr -> i32 | 
 |  | 
 | ; Test folding of binary instrs | 
 | @F = global ptr inttoptr (i32 add (i32 5, i32 -5) to ptr) | 
 | @G = global ptr inttoptr (i32 sub (i32 5, i32 5) to ptr) | 
 |  | 
 | ; Address space cast AS0 null-> AS1 null | 
 | @H = global ptr addrspace(1) addrspacecast(ptr null to ptr addrspace(1)) | 
 |  | 
 | ; Address space cast AS1 null-> AS0 null | 
 | @I = global ptr addrspacecast(ptr addrspace(1) null to ptr) | 
 |  | 
 | ; Bitcast -> GEP | 
 | @J = external global { i32 } | 
 | @K = global ptr @J |