Evan Cheng | f177bd4 | 2009-11-14 03:42:17 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -mtriple=i386-apple-darwin -relocation-model=pic -disable-fp-elim |
| 2 | ; rdar://7394770 |
| 3 | |
| 4 | %struct.JVTLib_100487 = type <{ i8 }> |
| 5 | |
| 6 | define i32 @_Z13JVTLib_10335613JVTLib_10266513JVTLib_100579S_S_S_jPhj(i16* nocapture %ResidualX_Array.0, %struct.JVTLib_100487* nocapture byval align 4 %xqp, i16* nocapture %ResidualL_Array.0, i16* %ResidualDCZ_Array.0, i16* nocapture %ResidualACZ_FOArray.0, i32 %useFRextDequant, i8* nocapture %JVTLib_103357, i32 %use_field_scan) ssp { |
| 7 | bb.nph: |
| 8 | %0 = shl i32 undef, 1 ; <i32> [#uses=2] |
| 9 | %mask133.masked.masked.masked.masked.masked.masked = or i640 undef, undef ; <i640> [#uses=1] |
| 10 | br label %bb |
| 11 | |
| 12 | bb: ; preds = %_ZL13JVTLib_105204PKsPK13JVTLib_105184PsPhjS5_j.exit, %bb.nph |
| 13 | br i1 undef, label %bb2, label %bb1 |
| 14 | |
| 15 | bb1: ; preds = %bb |
| 16 | br i1 undef, label %bb.i, label %bb1.i |
| 17 | |
| 18 | bb2: ; preds = %bb |
| 19 | unreachable |
| 20 | |
| 21 | bb.i: ; preds = %bb1 |
| 22 | br label %_ZL13JVTLib_105204PKsPK13JVTLib_105184PsPhjS5_j.exit |
| 23 | |
| 24 | bb1.i: ; preds = %bb1 |
| 25 | br label %_ZL13JVTLib_105204PKsPK13JVTLib_105184PsPhjS5_j.exit |
| 26 | |
| 27 | _ZL13JVTLib_105204PKsPK13JVTLib_105184PsPhjS5_j.exit: ; preds = %bb1.i, %bb.i |
| 28 | br i1 undef, label %bb5, label %bb |
| 29 | |
| 30 | bb5: ; preds = %_ZL13JVTLib_105204PKsPK13JVTLib_105184PsPhjS5_j.exit |
| 31 | %mask271.masked.masked.masked.masked.masked.masked.masked = or i256 0, undef ; <i256> [#uses=2] |
| 32 | %mask266.masked.masked.masked.masked.masked.masked = or i256 %mask271.masked.masked.masked.masked.masked.masked.masked, undef ; <i256> [#uses=1] |
| 33 | %mask241.masked = or i256 undef, undef ; <i256> [#uses=1] |
| 34 | %ins237 = or i256 undef, 0 ; <i256> [#uses=1] |
| 35 | br i1 undef, label %bb9, label %bb10 |
| 36 | |
| 37 | bb9: ; preds = %bb5 |
| 38 | br i1 undef, label %bb12.i, label %_ZL13JVTLib_105255PKsPK13JVTLib_105184Psj.exit |
| 39 | |
| 40 | bb12.i: ; preds = %bb9 |
| 41 | br label %_ZL13JVTLib_105255PKsPK13JVTLib_105184Psj.exit |
| 42 | |
| 43 | _ZL13JVTLib_105255PKsPK13JVTLib_105184Psj.exit: ; preds = %bb12.i, %bb9 |
| 44 | ret i32 undef |
| 45 | |
| 46 | bb10: ; preds = %bb5 |
| 47 | %1 = sext i16 undef to i32 ; <i32> [#uses=1] |
| 48 | %2 = sext i16 undef to i32 ; <i32> [#uses=1] |
| 49 | %3 = sext i16 undef to i32 ; <i32> [#uses=1] |
| 50 | %4 = sext i16 undef to i32 ; <i32> [#uses=1] |
| 51 | %5 = sext i16 undef to i32 ; <i32> [#uses=1] |
| 52 | %6 = sext i16 undef to i32 ; <i32> [#uses=1] |
| 53 | %tmp211 = lshr i256 %mask271.masked.masked.masked.masked.masked.masked.masked, 112 ; <i256> [#uses=0] |
| 54 | %7 = sext i16 undef to i32 ; <i32> [#uses=1] |
| 55 | %tmp208 = lshr i256 %mask266.masked.masked.masked.masked.masked.masked, 128 ; <i256> [#uses=1] |
| 56 | %tmp209 = trunc i256 %tmp208 to i16 ; <i16> [#uses=1] |
| 57 | %8 = sext i16 %tmp209 to i32 ; <i32> [#uses=1] |
| 58 | %9 = sext i16 undef to i32 ; <i32> [#uses=1] |
| 59 | %10 = sext i16 undef to i32 ; <i32> [#uses=1] |
| 60 | %tmp193 = lshr i256 %mask241.masked, 208 ; <i256> [#uses=1] |
| 61 | %tmp194 = trunc i256 %tmp193 to i16 ; <i16> [#uses=1] |
| 62 | %11 = sext i16 %tmp194 to i32 ; <i32> [#uses=1] |
| 63 | %tmp187 = lshr i256 %ins237, 240 ; <i256> [#uses=1] |
| 64 | %tmp188 = trunc i256 %tmp187 to i16 ; <i16> [#uses=1] |
| 65 | %12 = sext i16 %tmp188 to i32 ; <i32> [#uses=1] |
| 66 | %13 = add nsw i32 %4, %1 ; <i32> [#uses=1] |
| 67 | %14 = add nsw i32 %5, 0 ; <i32> [#uses=1] |
| 68 | %15 = add nsw i32 %6, %2 ; <i32> [#uses=1] |
| 69 | %16 = add nsw i32 %7, %3 ; <i32> [#uses=1] |
| 70 | %17 = add nsw i32 0, %8 ; <i32> [#uses=1] |
| 71 | %18 = add nsw i32 %11, %9 ; <i32> [#uses=1] |
| 72 | %19 = add nsw i32 0, %10 ; <i32> [#uses=1] |
| 73 | %20 = add nsw i32 %12, 0 ; <i32> [#uses=1] |
| 74 | %21 = add nsw i32 %17, %13 ; <i32> [#uses=2] |
| 75 | %22 = add nsw i32 %18, %14 ; <i32> [#uses=2] |
| 76 | %23 = add nsw i32 %19, %15 ; <i32> [#uses=2] |
| 77 | %24 = add nsw i32 %20, %16 ; <i32> [#uses=2] |
| 78 | %25 = add nsw i32 %22, %21 ; <i32> [#uses=2] |
| 79 | %26 = add nsw i32 %24, %23 ; <i32> [#uses=2] |
| 80 | %27 = sub i32 %21, %22 ; <i32> [#uses=1] |
| 81 | %28 = sub i32 %23, %24 ; <i32> [#uses=1] |
| 82 | %29 = add nsw i32 %26, %25 ; <i32> [#uses=1] |
| 83 | %30 = sub i32 %25, %26 ; <i32> [#uses=1] |
| 84 | %31 = sub i32 %27, %28 ; <i32> [#uses=1] |
| 85 | %32 = ashr i32 %29, 1 ; <i32> [#uses=2] |
| 86 | %33 = ashr i32 %30, 1 ; <i32> [#uses=2] |
| 87 | %34 = ashr i32 %31, 1 ; <i32> [#uses=2] |
| 88 | %35 = icmp sgt i32 %32, 32767 ; <i1> [#uses=1] |
| 89 | %o0_0.0.i = select i1 %35, i32 32767, i32 %32 ; <i32> [#uses=2] |
| 90 | %36 = icmp slt i32 %o0_0.0.i, -32768 ; <i1> [#uses=1] |
| 91 | %37 = icmp sgt i32 %33, 32767 ; <i1> [#uses=1] |
| 92 | %o1_0.0.i = select i1 %37, i32 32767, i32 %33 ; <i32> [#uses=2] |
| 93 | %38 = icmp slt i32 %o1_0.0.i, -32768 ; <i1> [#uses=1] |
| 94 | %39 = icmp sgt i32 %34, 32767 ; <i1> [#uses=1] |
| 95 | %o2_0.0.i = select i1 %39, i32 32767, i32 %34 ; <i32> [#uses=2] |
| 96 | %40 = icmp slt i32 %o2_0.0.i, -32768 ; <i1> [#uses=1] |
| 97 | %tmp101 = lshr i640 %mask133.masked.masked.masked.masked.masked.masked, 256 ; <i640> [#uses=1] |
| 98 | %41 = trunc i32 %o0_0.0.i to i16 ; <i16> [#uses=1] |
| 99 | %tmp358 = select i1 %36, i16 -32768, i16 %41 ; <i16> [#uses=2] |
| 100 | %42 = trunc i32 %o1_0.0.i to i16 ; <i16> [#uses=1] |
| 101 | %tmp347 = select i1 %38, i16 -32768, i16 %42 ; <i16> [#uses=1] |
| 102 | %43 = trunc i32 %o2_0.0.i to i16 ; <i16> [#uses=1] |
| 103 | %tmp335 = select i1 %40, i16 -32768, i16 %43 ; <i16> [#uses=1] |
| 104 | %44 = icmp sgt i16 %tmp358, -1 ; <i1> [#uses=2] |
| 105 | %..i24 = select i1 %44, i16 %tmp358, i16 undef ; <i16> [#uses=1] |
| 106 | %45 = icmp sgt i16 %tmp347, -1 ; <i1> [#uses=1] |
| 107 | %46 = icmp sgt i16 %tmp335, -1 ; <i1> [#uses=1] |
| 108 | %47 = zext i16 %..i24 to i32 ; <i32> [#uses=1] |
| 109 | %tmp = trunc i640 %tmp101 to i32 ; <i32> [#uses=1] |
| 110 | %48 = and i32 %tmp, 65535 ; <i32> [#uses=2] |
| 111 | %49 = mul i32 %47, %48 ; <i32> [#uses=1] |
| 112 | %50 = zext i16 undef to i32 ; <i32> [#uses=1] |
| 113 | %51 = mul i32 %50, %48 ; <i32> [#uses=1] |
| 114 | %52 = add i32 %49, %0 ; <i32> [#uses=1] |
| 115 | %53 = add i32 %51, %0 ; <i32> [#uses=1] |
| 116 | %54 = lshr i32 %52, undef ; <i32> [#uses=1] |
| 117 | %55 = lshr i32 %53, undef ; <i32> [#uses=1] |
| 118 | %56 = trunc i32 %54 to i16 ; <i16> [#uses=1] |
| 119 | %57 = trunc i32 %55 to i16 ; <i16> [#uses=1] |
| 120 | %vs16Out0_0.0.i = select i1 %44, i16 %56, i16 undef ; <i16> [#uses=1] |
| 121 | %vs16Out0_4.0.i = select i1 %45, i16 0, i16 undef ; <i16> [#uses=1] |
| 122 | %vs16Out1_0.0.i = select i1 %46, i16 %57, i16 undef ; <i16> [#uses=1] |
| 123 | br i1 undef, label %bb129.i, label %_ZL13JVTLib_105207PKsPK13JVTLib_105184Psj.exit |
| 124 | |
| 125 | bb129.i: ; preds = %bb10 |
| 126 | br label %_ZL13JVTLib_105207PKsPK13JVTLib_105184Psj.exit |
| 127 | |
| 128 | _ZL13JVTLib_105207PKsPK13JVTLib_105184Psj.exit: ; preds = %bb129.i, %bb10 |
| 129 | %58 = phi i16 [ %vs16Out0_4.0.i, %bb129.i ], [ undef, %bb10 ] ; <i16> [#uses=0] |
| 130 | %59 = phi i16 [ undef, %bb129.i ], [ %vs16Out1_0.0.i, %bb10 ] ; <i16> [#uses=0] |
| 131 | store i16 %vs16Out0_0.0.i, i16* %ResidualDCZ_Array.0, align 2 |
| 132 | unreachable |
| 133 | } |