@@ -1921,10 +1921,7 @@ define i1 @tautological8(i32 %A, i32 %B) {
19211921
19221922define i1 @tautological9 (i32 %A ) {
19231923; CHECK-LABEL: @tautological9(
1924- ; CHECK-NEXT: [[C1:%.*]] = and i32 [[A:%.*]], 1
1925- ; CHECK-NEXT: [[C2:%.*]] = and i32 [[A]], 3
1926- ; CHECK-NEXT: [[D:%.*]] = icmp ugt i32 [[C1]], [[C2]]
1927- ; CHECK-NEXT: ret i1 [[D]]
1924+ ; CHECK-NEXT: ret i1 false
19281925;
19291926 %C1 = and i32 %A , 1
19301927 %C2 = and i32 %A , 3
@@ -1934,10 +1931,7 @@ define i1 @tautological9(i32 %A) {
19341931
19351932define <2 x i1 > @tautological9_vec (<2 x i32 > %A ) {
19361933; CHECK-LABEL: @tautological9_vec(
1937- ; CHECK-NEXT: [[C1:%.*]] = and <2 x i32> [[A:%.*]], <i32 1, i32 1>
1938- ; CHECK-NEXT: [[C2:%.*]] = and <2 x i32> [[A]], <i32 3, i32 3>
1939- ; CHECK-NEXT: [[D:%.*]] = icmp ugt <2 x i32> [[C1]], [[C2]]
1940- ; CHECK-NEXT: ret <2 x i1> [[D]]
1934+ ; CHECK-NEXT: ret <2 x i1> zeroinitializer
19411935;
19421936 %C1 = and <2 x i32 > %A , <i32 1 , i32 1 >
19431937 %C2 = and <2 x i32 > %A , <i32 3 , i32 3 >
@@ -1947,10 +1941,7 @@ define <2 x i1> @tautological9_vec(<2 x i32> %A) {
19471941
19481942define i1 @tautological10 (i32 %A ) {
19491943; CHECK-LABEL: @tautological10(
1950- ; CHECK-NEXT: [[C1:%.*]] = and i32 [[A:%.*]], 1
1951- ; CHECK-NEXT: [[C2:%.*]] = and i32 [[A]], 3
1952- ; CHECK-NEXT: [[D:%.*]] = icmp ule i32 [[C1]], [[C2]]
1953- ; CHECK-NEXT: ret i1 [[D]]
1944+ ; CHECK-NEXT: ret i1 true
19541945;
19551946 %C1 = and i32 %A , 1
19561947 %C2 = and i32 %A , 3
@@ -1960,10 +1951,7 @@ define i1 @tautological10(i32 %A) {
19601951
19611952define i1 @tautological11 (i32 %A ) {
19621953; CHECK-LABEL: @tautological11(
1963- ; CHECK-NEXT: [[C1:%.*]] = or i32 [[A:%.*]], 1
1964- ; CHECK-NEXT: [[C2:%.*]] = or i32 [[A]], 3
1965- ; CHECK-NEXT: [[D:%.*]] = icmp ule i32 [[C1]], [[C2]]
1966- ; CHECK-NEXT: ret i1 [[D]]
1954+ ; CHECK-NEXT: ret i1 true
19671955;
19681956 %C1 = or i32 %A , 1
19691957 %C2 = or i32 %A , 3
@@ -1973,10 +1961,7 @@ define i1 @tautological11(i32 %A) {
19731961
19741962define i1 @tautological12 (i32 %A ) {
19751963; CHECK-LABEL: @tautological12(
1976- ; CHECK-NEXT: [[C1:%.*]] = or i32 [[A:%.*]], 1
1977- ; CHECK-NEXT: [[C2:%.*]] = or i32 [[A]], 3
1978- ; CHECK-NEXT: [[D:%.*]] = icmp ugt i32 [[C1]], [[C2]]
1979- ; CHECK-NEXT: ret i1 [[D]]
1964+ ; CHECK-NEXT: ret i1 false
19801965;
19811966 %C1 = or i32 %A , 1
19821967 %C2 = or i32 %A , 3
@@ -1986,10 +1971,7 @@ define i1 @tautological12(i32 %A) {
19861971
19871972define i1 @tautological13 (i32 %A ) {
19881973; CHECK-LABEL: @tautological13(
1989- ; CHECK-NEXT: [[C1:%.*]] = or i32 [[A:%.*]], 1
1990- ; CHECK-NEXT: [[C2:%.*]] = or i32 [[A]], 3
1991- ; CHECK-NEXT: [[D:%.*]] = icmp ult i32 [[C2]], [[C1]]
1992- ; CHECK-NEXT: ret i1 [[D]]
1974+ ; CHECK-NEXT: ret i1 false
19931975;
19941976 %C1 = or i32 %A , 1
19951977 %C2 = or i32 %A , 3
@@ -1999,10 +1981,7 @@ define i1 @tautological13(i32 %A) {
19991981
20001982define i1 @tautological14 (i32 %A ) {
20011983; CHECK-LABEL: @tautological14(
2002- ; CHECK-NEXT: [[C1:%.*]] = or i32 [[A:%.*]], 1
2003- ; CHECK-NEXT: [[C2:%.*]] = or i32 [[A]], 3
2004- ; CHECK-NEXT: [[D:%.*]] = icmp uge i32 [[C2]], [[C1]]
2005- ; CHECK-NEXT: ret i1 [[D]]
1984+ ; CHECK-NEXT: ret i1 true
20061985;
20071986 %C1 = or i32 %A , 1
20081987 %C2 = or i32 %A , 3
@@ -2012,10 +1991,7 @@ define i1 @tautological14(i32 %A) {
20121991
20131992define i1 @tautological15 (i32 %A ) {
20141993; CHECK-LABEL: @tautological15(
2015- ; CHECK-NEXT: [[C1:%.*]] = and i32 [[A:%.*]], 1
2016- ; CHECK-NEXT: [[C2:%.*]] = and i32 [[A]], 3
2017- ; CHECK-NEXT: [[D:%.*]] = icmp uge i32 [[C2]], [[C1]]
2018- ; CHECK-NEXT: ret i1 [[D]]
1994+ ; CHECK-NEXT: ret i1 true
20191995;
20201996 %C1 = and i32 %A , 1
20211997 %C2 = and i32 %A , 3
@@ -2025,10 +2001,7 @@ define i1 @tautological15(i32 %A) {
20252001
20262002define i1 @tautological16 (i32 %A ) {
20272003; CHECK-LABEL: @tautological16(
2028- ; CHECK-NEXT: [[C1:%.*]] = and i32 [[A:%.*]], 1
2029- ; CHECK-NEXT: [[C2:%.*]] = and i32 [[A]], 3
2030- ; CHECK-NEXT: [[D:%.*]] = icmp ult i32 [[C2]], [[C1]]
2031- ; CHECK-NEXT: ret i1 [[D]]
2004+ ; CHECK-NEXT: ret i1 false
20322005;
20332006 %C1 = and i32 %A , 1
20342007 %C2 = and i32 %A , 3
@@ -2142,10 +2115,7 @@ define i1 @tautological16_negative(i32 %A) {
21422115
21432116define i1 @tautological17_subset1 (i32 %A ) {
21442117; CHECK-LABEL: @tautological17_subset1(
2145- ; CHECK-NEXT: [[C1:%.*]] = and i32 [[A:%.*]], 1
2146- ; CHECK-NEXT: [[C2:%.*]] = and i32 [[A]], 3
2147- ; CHECK-NEXT: [[D:%.*]] = icmp sgt i32 [[C1]], [[C2]]
2148- ; CHECK-NEXT: ret i1 [[D]]
2118+ ; CHECK-NEXT: ret i1 false
21492119;
21502120 %C1 = and i32 %A , 1
21512121 %C2 = and i32 %A , 3
@@ -2155,10 +2125,7 @@ define i1 @tautological17_subset1(i32 %A) {
21552125
21562126define i1 @tautological17_subset2 (i32 %A ) {
21572127; CHECK-LABEL: @tautological17_subset2(
2158- ; CHECK-NEXT: [[C1:%.*]] = and i32 [[A:%.*]], -4
2159- ; CHECK-NEXT: [[C2:%.*]] = and i32 [[A]], -3
2160- ; CHECK-NEXT: [[D:%.*]] = icmp sgt i32 [[C1]], [[C2]]
2161- ; CHECK-NEXT: ret i1 [[D]]
2128+ ; CHECK-NEXT: ret i1 false
21622129;
21632130 %C1 = and i32 %A , -4
21642131 %C2 = and i32 %A , -3
@@ -2181,10 +2148,7 @@ define i1 @tautological17_negative(i32 %A) {
21812148
21822149define i1 @tautological18_subset1 (i32 %A ) {
21832150; CHECK-LABEL: @tautological18_subset1(
2184- ; CHECK-NEXT: [[C1:%.*]] = and i32 [[A:%.*]], 1
2185- ; CHECK-NEXT: [[C2:%.*]] = and i32 [[A]], 3
2186- ; CHECK-NEXT: [[D:%.*]] = icmp sle i32 [[C1]], [[C2]]
2187- ; CHECK-NEXT: ret i1 [[D]]
2151+ ; CHECK-NEXT: ret i1 true
21882152;
21892153 %C1 = and i32 %A , 1
21902154 %C2 = and i32 %A , 3
@@ -2194,10 +2158,7 @@ define i1 @tautological18_subset1(i32 %A) {
21942158
21952159define i1 @tautological18_subset2 (i32 %A ) {
21962160; CHECK-LABEL: @tautological18_subset2(
2197- ; CHECK-NEXT: [[C1:%.*]] = and i32 [[A:%.*]], -4
2198- ; CHECK-NEXT: [[C2:%.*]] = and i32 [[A]], -3
2199- ; CHECK-NEXT: [[D:%.*]] = icmp sle i32 [[C1]], [[C2]]
2200- ; CHECK-NEXT: ret i1 [[D]]
2161+ ; CHECK-NEXT: ret i1 true
22012162;
22022163 %C1 = and i32 %A , -4
22032164 %C2 = and i32 %A , -3
@@ -2220,10 +2181,7 @@ define i1 @tautological18_negative(i32 %A) {
22202181
22212182define i1 @tautological19_subset1 (i32 %A ) {
22222183; CHECK-LABEL: @tautological19_subset1(
2223- ; CHECK-NEXT: [[C1:%.*]] = or i32 [[A:%.*]], 1
2224- ; CHECK-NEXT: [[C2:%.*]] = or i32 [[A]], 3
2225- ; CHECK-NEXT: [[D:%.*]] = icmp sgt i32 [[C1]], [[C2]]
2226- ; CHECK-NEXT: ret i1 [[D]]
2184+ ; CHECK-NEXT: ret i1 false
22272185;
22282186 %C1 = or i32 %A , 1
22292187 %C2 = or i32 %A , 3
@@ -2233,10 +2191,7 @@ define i1 @tautological19_subset1(i32 %A) {
22332191
22342192define i1 @tautological19_subset2 (i32 %A ) {
22352193; CHECK-LABEL: @tautological19_subset2(
2236- ; CHECK-NEXT: [[C1:%.*]] = and i32 [[A:%.*]], -4
2237- ; CHECK-NEXT: [[C2:%.*]] = and i32 [[A]], -3
2238- ; CHECK-NEXT: [[D:%.*]] = icmp sgt i32 [[C1]], [[C2]]
2239- ; CHECK-NEXT: ret i1 [[D]]
2194+ ; CHECK-NEXT: ret i1 false
22402195;
22412196 %C1 = and i32 %A , -4
22422197 %C2 = and i32 %A , -3
@@ -2259,10 +2214,7 @@ define i1 @tautological19_negative(i32 %A) {
22592214
22602215define i1 @tautological20_subset1 (i32 %A ) {
22612216; CHECK-LABEL: @tautological20_subset1(
2262- ; CHECK-NEXT: [[C1:%.*]] = and i32 [[A:%.*]], 1
2263- ; CHECK-NEXT: [[C2:%.*]] = and i32 [[A]], 3
2264- ; CHECK-NEXT: [[D:%.*]] = icmp sle i32 [[C1]], [[C2]]
2265- ; CHECK-NEXT: ret i1 [[D]]
2217+ ; CHECK-NEXT: ret i1 true
22662218;
22672219 %C1 = and i32 %A , 1
22682220 %C2 = and i32 %A , 3
@@ -2272,10 +2224,7 @@ define i1 @tautological20_subset1(i32 %A) {
22722224
22732225define i1 @tautological20_subset2 (i32 %A ) {
22742226; CHECK-LABEL: @tautological20_subset2(
2275- ; CHECK-NEXT: [[C1:%.*]] = and i32 [[A:%.*]], -4
2276- ; CHECK-NEXT: [[C2:%.*]] = and i32 [[A]], -3
2277- ; CHECK-NEXT: [[D:%.*]] = icmp sle i32 [[C1]], [[C2]]
2278- ; CHECK-NEXT: ret i1 [[D]]
2227+ ; CHECK-NEXT: ret i1 true
22792228;
22802229 %C1 = and i32 %A , -4
22812230 %C2 = and i32 %A , -3
0 commit comments