Skip to content

Commit f060f09

Browse files
committed
[X86] Expand constant expressions in test (NFC)
1 parent 9dad32c commit f060f09

File tree

1 file changed

+63
-5
lines changed

1 file changed

+63
-5
lines changed

llvm/test/CodeGen/X86/2013-01-09-DAGCombineBug.ll

Lines changed: 63 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,74 @@ bb:
4848
br label %bb3
4949

5050
bb1: ; No predecessors!
51-
br i1 icmp ult (i64 xor (i64 zext (i1 trunc (i192 lshr (i192 or (i192 shl (i192 zext (i64 trunc (i128 lshr (i128 trunc (i384 lshr (i384 or (i384 shl (i384 zext (i64 ptrtoint (ptr @global to i64) to i384), i384 192), i384 425269881901436522087161771558896140289), i384 128) to i128), i128 64) to i64) to i192), i192 64), i192 1), i192 128) to i1) to i64), i64 1), i64 1), label %bb2, label %bb3
51+
%constexpr = ptrtoint ptr @global to i64
52+
%constexpr1 = zext i64 %constexpr to i384
53+
%constexpr2 = shl i384 %constexpr1, 192
54+
%constexpr3 = or i384 %constexpr2, 425269881901436522087161771558896140289
55+
%constexpr4 = lshr i384 %constexpr3, 128
56+
%constexpr5 = trunc i384 %constexpr4 to i128
57+
%constexpr6 = lshr i128 %constexpr5, 64
58+
%constexpr7 = trunc i128 %constexpr6 to i64
59+
%constexpr8 = zext i64 %constexpr7 to i192
60+
%constexpr9 = shl i192 %constexpr8, 64
61+
%constexpr10 = or i192 %constexpr9, 1
62+
%constexpr11 = lshr i192 %constexpr10, 128
63+
%constexpr12 = trunc i192 %constexpr11 to i1
64+
%constexpr13 = zext i1 %constexpr12 to i64
65+
%constexpr14 = xor i64 %constexpr13, 1
66+
%constexpr15 = icmp ult i64 %constexpr14, 1
67+
br i1 %constexpr15, label %bb2, label %bb3
5268

5369
bb2: ; preds = %bb1
5470
unreachable
5571

5672
bb3: ; preds = %bb1, %bb
57-
br i1 xor (i1 trunc (i192 lshr (i192 or (i192 shl (i192 zext (i64 trunc (i128 lshr (i128 trunc (i384 lshr (i384 or (i384 shl (i384 zext (i64 ptrtoint (ptr @global to i64) to i384), i384 192), i384 425269881901436522087161771558896140289), i384 128) to i128), i128 64) to i64) to i192), i192 64), i192 1), i192 128) to i1), i1 trunc (i192 lshr (i192 or (i192 and (i192 or (i192 shl (i192 zext (i64 trunc (i128 lshr (i128 trunc (i384 lshr (i384 or (i384 shl (i384 zext (i64 ptrtoint (ptr @global to i64) to i384), i384 192), i384 425269881901436522087161771558896140289), i384 128) to i128), i128 64) to i64) to i192), i192 64), i192 1), i192 -340282366920938463463374607431768211457), i192 shl (i192 zext (i1 trunc (i192 lshr (i192 or (i192 shl (i192 zext (i64 trunc (i128 lshr (i128 trunc (i384 lshr (i384 or (i384 shl (i384 zext (i64 ptrtoint (ptr @global to i64) to i384), i384 192), i384 425269881901436522087161771558896140289), i384 128) to i128), i128 64) to i64) to i192), i192 64), i192 1), i192 128) to i1) to i192), i192 128)), i192 128) to i1)), label %bb7, label %bb4
58-
59-
bb4: ; preds = %bb6, %bb3
60-
%tmp = phi i1 [ true, %bb6 ], [ trunc (i192 lshr (i192 or (i192 and (i192 or (i192 shl (i192 zext (i64 trunc (i128 lshr (i128 trunc (i384 lshr (i384 or (i384 shl (i384 zext (i64 ptrtoint (ptr @global to i64) to i384), i384 192), i384 425269881901436522087161771558896140289), i384 128) to i128), i128 64) to i64) to i192), i192 64), i192 1), i192 -340282366920938463463374607431768211457), i192 shl (i192 zext (i1 trunc (i192 lshr (i192 or (i192 shl (i192 zext (i64 trunc (i128 lshr (i128 trunc (i384 lshr (i384 or (i384 shl (i384 zext (i64 ptrtoint (ptr @global to i64) to i384), i384 192), i384 425269881901436522087161771558896140289), i384 128) to i128), i128 64) to i64) to i192), i192 64), i192 1), i192 128) to i1) to i192), i192 128)), i192 128) to i1), %bb3 ]
73+
%constexpr16 = ptrtoint ptr @global to i64
74+
%constexpr17 = zext i64 %constexpr16 to i384
75+
%constexpr18 = shl i384 %constexpr17, 192
76+
%constexpr19 = or i384 %constexpr18, 425269881901436522087161771558896140289
77+
%constexpr20 = lshr i384 %constexpr19, 128
78+
%constexpr21 = trunc i384 %constexpr20 to i128
79+
%constexpr22 = lshr i128 %constexpr21, 64
80+
%constexpr23 = trunc i128 %constexpr22 to i64
81+
%constexpr24 = zext i64 %constexpr23 to i192
82+
%constexpr25 = shl i192 %constexpr24, 64
83+
%constexpr26 = or i192 %constexpr25, 1
84+
%constexpr27 = lshr i192 %constexpr26, 128
85+
%constexpr28 = trunc i192 %constexpr27 to i1
86+
%constexpr29 = and i192 %constexpr26, -340282366920938463463374607431768211457
87+
%constexpr30 = zext i1 %constexpr28 to i192
88+
%constexpr31 = shl i192 %constexpr30, 128
89+
%constexpr32 = or i192 %constexpr29, %constexpr31
90+
%constexpr33 = lshr i192 %constexpr32, 128
91+
%constexpr34 = trunc i192 %constexpr33 to i1
92+
%constexpr35 = xor i1 %constexpr28, %constexpr34
93+
br i1 %constexpr35, label %bb7, label %phi.constexpr
94+
95+
phi.constexpr: ; preds = %bb3
96+
%constexpr36 = ptrtoint ptr @global to i64
97+
%constexpr37 = zext i64 %constexpr36 to i384
98+
%constexpr38 = shl i384 %constexpr37, 192
99+
%constexpr39 = or i384 %constexpr38, 425269881901436522087161771558896140289
100+
%constexpr40 = lshr i384 %constexpr39, 128
101+
%constexpr41 = trunc i384 %constexpr40 to i128
102+
%constexpr42 = lshr i128 %constexpr41, 64
103+
%constexpr43 = trunc i128 %constexpr42 to i64
104+
%constexpr44 = zext i64 %constexpr43 to i192
105+
%constexpr45 = shl i192 %constexpr44, 64
106+
%constexpr46 = or i192 %constexpr45, 1
107+
%constexpr47 = and i192 %constexpr46, -340282366920938463463374607431768211457
108+
%constexpr48 = lshr i192 %constexpr46, 128
109+
%constexpr49 = trunc i192 %constexpr48 to i1
110+
%constexpr50 = zext i1 %constexpr49 to i192
111+
%constexpr51 = shl i192 %constexpr50, 128
112+
%constexpr52 = or i192 %constexpr47, %constexpr51
113+
%constexpr53 = lshr i192 %constexpr52, 128
114+
%constexpr54 = trunc i192 %constexpr53 to i1
115+
br label %bb4
116+
117+
bb4: ; preds = %phi.constexpr, %bb6
118+
%tmp = phi i1 [ true, %bb6 ], [ %constexpr54, %phi.constexpr ]
61119
br i1 false, label %bb8, label %bb5
62120

63121
bb5: ; preds = %bb4

0 commit comments

Comments
 (0)