1 ; RUN: llc < %s -mtriple=thumbv7s-apple-ios6.0.0 -verify-machineinstrs 2 3 %union.opcode = type { i32 } 4 5 @opcode = external global %union.opcode, align 4 6 7 ; Function Attrs: nounwind ssp 8 define i32 @sfu() { 9 entry: 10 %bf.load = load i32* getelementptr inbounds (%union.opcode* @opcode, i32 0, i32 0), align 4 11 %bf.lshr = lshr i32 %bf.load, 26 12 %bf.clear = and i32 %bf.lshr, 7 13 switch i32 %bf.clear, label %return [ 14 i32 0, label %sw.bb 15 i32 1, label %sw.bb1 16 ] 17 18 sw.bb: ; preds = %entry 19 %call = tail call i32 @func0() 20 br label %return 21 22 sw.bb1: ; preds = %entry 23 %call2 = tail call i32 @func1() 24 br label %return 25 26 return: ; preds = %sw.bb1, %sw.bb, %entry 27 %retval.0 = phi i32 [ %call2, %sw.bb1 ], [ %call, %sw.bb ], [ -1, %entry ] 28 ret i32 %retval.0 29 } 30 31 ; Function Attrs: nounwind ssp 32 declare i32 @func0() 33 34 ; Function Attrs: nounwind ssp 35 declare i32 @func1() 36