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