1 ; RUN: llc < %s -march=x86 | FileCheck %s 2 3 define fastcc i32 @t() nounwind { 4 entry: 5 ; CHECK: t: 6 ; CHECK: movzwl 0, %eax 7 ; CHECK: orl $2, %eax 8 ; CHECK: movw %ax, 0 9 ; CHECK: shrl $3, %eax 10 ; CHECK: andl $1, %eax 11 br i1 false, label %UnifiedReturnBlock, label %bb4 12 bb4: ; preds = %entry 13 br i1 false, label %bb17, label %bb22 14 bb17: ; preds = %bb4 15 ret i32 1 16 bb22: ; preds = %bb4 17 br i1 true, label %walkExprTree.exit, label %bb4.i 18 bb4.i: ; preds = %bb22 19 ret i32 0 20 walkExprTree.exit: ; preds = %bb22 21 %tmp83 = load i16* null, align 4 ; <i16> [#uses=1] 22 %tmp84 = or i16 %tmp83, 2 ; <i16> [#uses=2] 23 store i16 %tmp84, i16* null, align 4 24 %tmp98993 = zext i16 %tmp84 to i32 ; <i32> [#uses=1] 25 %tmp1004 = lshr i32 %tmp98993, 3 ; <i32> [#uses=1] 26 %tmp100.lobit5 = and i32 %tmp1004, 1 ; <i32> [#uses=1] 27 ret i32 %tmp100.lobit5 28 UnifiedReturnBlock: ; preds = %entry 29 ret i32 0 30 } 31