[InstCombine] Signed saturation patterns
[llvm-core.git] / test / Transforms / InstCombine / 2007-11-07-OpaqueAlignCrash.ll
blobff3107297a12824466ee2bb138e4587e8047e028
1 ; RUN: opt < %s -instcombine -disable-output
2 ; PR1780
4 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
5 target triple = "i686-pc-linux-gnu"
7 %opaque_t = type opaque
8 %opaque2 = type opaque
9 %op_ts = type {%opaque2, i32}
11 @g = external global %opaque_t
12 @h = external global %op_ts
14 define i32 @foo() {
15 entry:
16         %x = load i8, i8* bitcast (%opaque_t* @g to i8*)
17         %y = load i32, i32* bitcast (%op_ts* @h to i32*)
18         %z = zext i8 %x to i32
19         %r = add i32 %y, %z
20         ret i32 %r