@@ -15,7 +15,7 @@ define i8 @nilpotent(i8 %x) {
1515define i2 @idempotent (i2 %x ) {
1616; CHECK-LABEL: define i2 @idempotent(
1717; CHECK-SAME: i2 [[X:%.*]]) {
18- ; CHECK-NEXT: ret i2 -1
18+ ; CHECK-NEXT: ret i2 [[X]]
1919;
2020 %tmp1 = and i2 %x , %x
2121 %tmp2 = and i2 %tmp1 , %x
@@ -60,8 +60,7 @@ define i3 @foo3x5(i3 %x) {
6060; CHECK-SAME: i3 [[X:%.*]]) {
6161; CHECK-NEXT: [[TMP3:%.*]] = mul i3 [[X]], [[X]]
6262; CHECK-NEXT: [[TMP4:%.*]] = mul i3 [[TMP3]], [[X]]
63- ; CHECK-NEXT: [[TMP5:%.*]] = mul i3 [[TMP4]], [[TMP3]]
64- ; CHECK-NEXT: ret i3 [[TMP5]]
63+ ; CHECK-NEXT: ret i3 [[TMP4]]
6564;
6665 %tmp1 = mul i3 %x , %x
6766 %tmp2 = mul i3 %tmp1 , %x
@@ -75,8 +74,7 @@ define i3 @foo3x5_nsw(i3 %x) {
7574; CHECK-LABEL: define i3 @foo3x5_nsw(
7675; CHECK-SAME: i3 [[X:%.*]]) {
7776; CHECK-NEXT: [[TMP3:%.*]] = mul i3 [[X]], [[X]]
78- ; CHECK-NEXT: [[TMP2:%.*]] = mul i3 [[TMP3]], [[X]]
79- ; CHECK-NEXT: [[TMP4:%.*]] = mul i3 [[TMP2]], [[TMP3]]
77+ ; CHECK-NEXT: [[TMP4:%.*]] = mul nsw i3 [[TMP3]], [[X]]
8078; CHECK-NEXT: ret i3 [[TMP4]]
8179;
8280 %tmp1 = mul i3 %x , %x
@@ -91,8 +89,7 @@ define i3 @foo3x6(i3 %x) {
9189; CHECK-LABEL: define i3 @foo3x6(
9290; CHECK-SAME: i3 [[X:%.*]]) {
9391; CHECK-NEXT: [[TMP1:%.*]] = mul i3 [[X]], [[X]]
94- ; CHECK-NEXT: [[TMP3:%.*]] = mul i3 [[TMP1]], [[X]]
95- ; CHECK-NEXT: [[TMP2:%.*]] = mul i3 [[TMP3]], [[TMP3]]
92+ ; CHECK-NEXT: [[TMP2:%.*]] = mul i3 [[TMP1]], [[TMP1]]
9693; CHECK-NEXT: ret i3 [[TMP2]]
9794;
9895 %tmp1 = mul i3 %x , %x
@@ -108,9 +105,7 @@ define i3 @foo3x7(i3 %x) {
108105; CHECK-LABEL: define i3 @foo3x7(
109106; CHECK-SAME: i3 [[X:%.*]]) {
110107; CHECK-NEXT: [[TMP5:%.*]] = mul i3 [[X]], [[X]]
111- ; CHECK-NEXT: [[TMP7:%.*]] = mul i3 [[TMP5]], [[X]]
112- ; CHECK-NEXT: [[TMP3:%.*]] = mul i3 [[TMP7]], [[X]]
113- ; CHECK-NEXT: [[TMP6:%.*]] = mul i3 [[TMP3]], [[TMP7]]
108+ ; CHECK-NEXT: [[TMP6:%.*]] = mul i3 [[TMP5]], [[X]]
114109; CHECK-NEXT: ret i3 [[TMP6]]
115110;
116111 %tmp1 = mul i3 %x , %x
@@ -127,8 +122,7 @@ define i4 @foo4x8(i4 %x) {
127122; CHECK-LABEL: define i4 @foo4x8(
128123; CHECK-SAME: i4 [[X:%.*]]) {
129124; CHECK-NEXT: [[TMP1:%.*]] = mul i4 [[X]], [[X]]
130- ; CHECK-NEXT: [[TMP3:%.*]] = mul i4 [[TMP1]], [[TMP1]]
131- ; CHECK-NEXT: [[TMP4:%.*]] = mul i4 [[TMP3]], [[TMP3]]
125+ ; CHECK-NEXT: [[TMP4:%.*]] = mul i4 [[TMP1]], [[TMP1]]
132126; CHECK-NEXT: ret i4 [[TMP4]]
133127;
134128 %tmp1 = mul i4 %x , %x
@@ -146,9 +140,8 @@ define i4 @foo4x9(i4 %x) {
146140; CHECK-LABEL: define i4 @foo4x9(
147141; CHECK-SAME: i4 [[X:%.*]]) {
148142; CHECK-NEXT: [[TMP1:%.*]] = mul i4 [[X]], [[X]]
149- ; CHECK-NEXT: [[TMP2:%.*]] = mul i4 [[TMP1]], [[TMP1]]
150- ; CHECK-NEXT: [[TMP3:%.*]] = mul i4 [[TMP2]], [[X]]
151- ; CHECK-NEXT: [[TMP8:%.*]] = mul i4 [[TMP3]], [[TMP2]]
143+ ; CHECK-NEXT: [[TMP2:%.*]] = mul i4 [[TMP1]], [[X]]
144+ ; CHECK-NEXT: [[TMP8:%.*]] = mul i4 [[TMP2]], [[TMP1]]
152145; CHECK-NEXT: ret i4 [[TMP8]]
153146;
154147 %tmp1 = mul i4 %x , %x
@@ -167,8 +160,7 @@ define i4 @foo4x10(i4 %x) {
167160; CHECK-LABEL: define i4 @foo4x10(
168161; CHECK-SAME: i4 [[X:%.*]]) {
169162; CHECK-NEXT: [[TMP1:%.*]] = mul i4 [[X]], [[X]]
170- ; CHECK-NEXT: [[TMP4:%.*]] = mul i4 [[TMP1]], [[TMP1]]
171- ; CHECK-NEXT: [[TMP2:%.*]] = mul i4 [[TMP4]], [[X]]
163+ ; CHECK-NEXT: [[TMP2:%.*]] = mul i4 [[TMP1]], [[X]]
172164; CHECK-NEXT: [[TMP3:%.*]] = mul i4 [[TMP2]], [[TMP2]]
173165; CHECK-NEXT: ret i4 [[TMP3]]
174166;
@@ -189,8 +181,7 @@ define i4 @foo4x11(i4 %x) {
189181; CHECK-LABEL: define i4 @foo4x11(
190182; CHECK-SAME: i4 [[X:%.*]]) {
191183; CHECK-NEXT: [[TMP1:%.*]] = mul i4 [[X]], [[X]]
192- ; CHECK-NEXT: [[TMP4:%.*]] = mul i4 [[TMP1]], [[TMP1]]
193- ; CHECK-NEXT: [[TMP2:%.*]] = mul i4 [[TMP4]], [[X]]
184+ ; CHECK-NEXT: [[TMP2:%.*]] = mul i4 [[TMP1]], [[X]]
194185; CHECK-NEXT: [[TMP3:%.*]] = mul i4 [[TMP2]], [[X]]
195186; CHECK-NEXT: [[TMP10:%.*]] = mul i4 [[TMP3]], [[TMP2]]
196187; CHECK-NEXT: ret i4 [[TMP10]]
@@ -213,9 +204,7 @@ define i4 @foo4x12(i4 %x) {
213204; CHECK-LABEL: define i4 @foo4x12(
214205; CHECK-SAME: i4 [[X:%.*]]) {
215206; CHECK-NEXT: [[TMP1:%.*]] = mul i4 [[X]], [[X]]
216- ; CHECK-NEXT: [[TMP4:%.*]] = mul i4 [[TMP1]], [[X]]
217- ; CHECK-NEXT: [[TMP3:%.*]] = mul i4 [[TMP4]], [[TMP4]]
218- ; CHECK-NEXT: [[TMP2:%.*]] = mul i4 [[TMP3]], [[TMP3]]
207+ ; CHECK-NEXT: [[TMP2:%.*]] = mul i4 [[TMP1]], [[TMP1]]
219208; CHECK-NEXT: ret i4 [[TMP2]]
220209;
221210 %tmp1 = mul i4 %x , %x
@@ -238,9 +227,7 @@ define i4 @foo4x13(i4 %x) {
238227; CHECK-SAME: i4 [[X:%.*]]) {
239228; CHECK-NEXT: [[TMP1:%.*]] = mul i4 [[X]], [[X]]
240229; CHECK-NEXT: [[TMP2:%.*]] = mul i4 [[TMP1]], [[X]]
241- ; CHECK-NEXT: [[TMP3:%.*]] = mul i4 [[TMP2]], [[TMP2]]
242- ; CHECK-NEXT: [[TMP4:%.*]] = mul i4 [[TMP3]], [[X]]
243- ; CHECK-NEXT: [[TMP12:%.*]] = mul i4 [[TMP4]], [[TMP3]]
230+ ; CHECK-NEXT: [[TMP12:%.*]] = mul i4 [[TMP2]], [[TMP1]]
244231; CHECK-NEXT: ret i4 [[TMP12]]
245232;
246233 %tmp1 = mul i4 %x , %x
@@ -263,9 +250,7 @@ define i4 @foo4x14(i4 %x) {
263250; CHECK-LABEL: define i4 @foo4x14(
264251; CHECK-SAME: i4 [[X:%.*]]) {
265252; CHECK-NEXT: [[TMP1:%.*]] = mul i4 [[X]], [[X]]
266- ; CHECK-NEXT: [[TMP4:%.*]] = mul i4 [[TMP1]], [[X]]
267- ; CHECK-NEXT: [[TMP5:%.*]] = mul i4 [[TMP4]], [[TMP4]]
268- ; CHECK-NEXT: [[TMP6:%.*]] = mul i4 [[TMP5]], [[X]]
253+ ; CHECK-NEXT: [[TMP6:%.*]] = mul i4 [[TMP1]], [[X]]
269254; CHECK-NEXT: [[TMP7:%.*]] = mul i4 [[TMP6]], [[TMP6]]
270255; CHECK-NEXT: ret i4 [[TMP7]]
271256;
@@ -290,9 +275,7 @@ define i4 @foo4x15(i4 %x) {
290275; CHECK-LABEL: define i4 @foo4x15(
291276; CHECK-SAME: i4 [[X:%.*]]) {
292277; CHECK-NEXT: [[TMP1:%.*]] = mul i4 [[X]], [[X]]
293- ; CHECK-NEXT: [[TMP4:%.*]] = mul i4 [[TMP1]], [[X]]
294- ; CHECK-NEXT: [[TMP3:%.*]] = mul i4 [[TMP4]], [[TMP4]]
295- ; CHECK-NEXT: [[TMP6:%.*]] = mul i4 [[TMP3]], [[X]]
278+ ; CHECK-NEXT: [[TMP6:%.*]] = mul i4 [[TMP1]], [[X]]
296279; CHECK-NEXT: [[TMP5:%.*]] = mul i4 [[TMP6]], [[X]]
297280; CHECK-NEXT: [[TMP14:%.*]] = mul i4 [[TMP5]], [[TMP6]]
298281; CHECK-NEXT: ret i4 [[TMP14]]
0 commit comments