Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 1 | ; NOTE: Assertions have been autogenerated by update_test_checks.py |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 2 | ; RUN: opt < %s -instsimplify -S | FileCheck %s |
| 3 | |
| 4 | define i1 @max1(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 5 | ; CHECK-LABEL: @max1( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 6 | ; CHECK: ret i1 false |
| 7 | ; |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 8 | %c = icmp sgt i32 %x, %y |
| 9 | %m = select i1 %c, i32 %x, i32 %y |
| 10 | %r = icmp slt i32 %m, %x |
| 11 | ret i1 %r |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 12 | } |
| 13 | |
| 14 | define i1 @max2(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 15 | ; CHECK-LABEL: @max2( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 16 | ; CHECK: ret i1 true |
| 17 | ; |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 18 | %c = icmp sge i32 %x, %y |
| 19 | %m = select i1 %c, i32 %x, i32 %y |
| 20 | %r = icmp sge i32 %m, %x |
| 21 | ret i1 %r |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 22 | } |
| 23 | |
| 24 | define i1 @max3(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 25 | ; CHECK-LABEL: @max3( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 26 | ; CHECK: ret i1 false |
| 27 | ; |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 28 | %c = icmp ugt i32 %x, %y |
| 29 | %m = select i1 %c, i32 %x, i32 %y |
| 30 | %r = icmp ult i32 %m, %x |
| 31 | ret i1 %r |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 32 | } |
| 33 | |
| 34 | define i1 @max4(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 35 | ; CHECK-LABEL: @max4( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 36 | ; CHECK: ret i1 true |
| 37 | ; |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 38 | %c = icmp uge i32 %x, %y |
| 39 | %m = select i1 %c, i32 %x, i32 %y |
| 40 | %r = icmp uge i32 %m, %x |
| 41 | ret i1 %r |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 42 | } |
| 43 | |
| 44 | define i1 @max5(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 45 | ; CHECK-LABEL: @max5( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 46 | ; CHECK: ret i1 false |
| 47 | ; |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 48 | %c = icmp sgt i32 %x, %y |
| 49 | %m = select i1 %c, i32 %x, i32 %y |
| 50 | %r = icmp sgt i32 %x, %m |
| 51 | ret i1 %r |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 52 | } |
| 53 | |
| 54 | define i1 @max6(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 55 | ; CHECK-LABEL: @max6( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 56 | ; CHECK: ret i1 true |
| 57 | ; |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 58 | %c = icmp sge i32 %x, %y |
| 59 | %m = select i1 %c, i32 %x, i32 %y |
| 60 | %r = icmp sle i32 %x, %m |
| 61 | ret i1 %r |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 62 | } |
| 63 | |
| 64 | define i1 @max7(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 65 | ; CHECK-LABEL: @max7( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 66 | ; CHECK: ret i1 false |
| 67 | ; |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 68 | %c = icmp ugt i32 %x, %y |
| 69 | %m = select i1 %c, i32 %x, i32 %y |
| 70 | %r = icmp ugt i32 %x, %m |
| 71 | ret i1 %r |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 72 | } |
| 73 | |
| 74 | define i1 @max8(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 75 | ; CHECK-LABEL: @max8( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 76 | ; CHECK: ret i1 true |
| 77 | ; |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 78 | %c = icmp uge i32 %x, %y |
| 79 | %m = select i1 %c, i32 %x, i32 %y |
| 80 | %r = icmp ule i32 %x, %m |
| 81 | ret i1 %r |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 82 | } |
| 83 | |
| 84 | define i1 @min1(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 85 | ; CHECK-LABEL: @min1( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 86 | ; CHECK: ret i1 false |
| 87 | ; |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 88 | %c = icmp sgt i32 %x, %y |
| 89 | %m = select i1 %c, i32 %y, i32 %x |
| 90 | %r = icmp sgt i32 %m, %x |
| 91 | ret i1 %r |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 92 | } |
| 93 | |
| 94 | define i1 @min2(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 95 | ; CHECK-LABEL: @min2( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 96 | ; CHECK: ret i1 true |
| 97 | ; |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 98 | %c = icmp sge i32 %x, %y |
| 99 | %m = select i1 %c, i32 %y, i32 %x |
| 100 | %r = icmp sle i32 %m, %x |
| 101 | ret i1 %r |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 102 | } |
| 103 | |
| 104 | define i1 @min3(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 105 | ; CHECK-LABEL: @min3( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 106 | ; CHECK: ret i1 false |
| 107 | ; |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 108 | %c = icmp ugt i32 %x, %y |
| 109 | %m = select i1 %c, i32 %y, i32 %x |
| 110 | %r = icmp ugt i32 %m, %x |
| 111 | ret i1 %r |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 112 | } |
| 113 | |
| 114 | define i1 @min4(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 115 | ; CHECK-LABEL: @min4( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 116 | ; CHECK: ret i1 true |
| 117 | ; |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 118 | %c = icmp uge i32 %x, %y |
| 119 | %m = select i1 %c, i32 %y, i32 %x |
| 120 | %r = icmp ule i32 %m, %x |
| 121 | ret i1 %r |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 122 | } |
| 123 | |
| 124 | define i1 @min5(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 125 | ; CHECK-LABEL: @min5( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 126 | ; CHECK: ret i1 false |
| 127 | ; |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 128 | %c = icmp sgt i32 %x, %y |
| 129 | %m = select i1 %c, i32 %y, i32 %x |
| 130 | %r = icmp slt i32 %x, %m |
| 131 | ret i1 %r |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 132 | } |
| 133 | |
| 134 | define i1 @min6(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 135 | ; CHECK-LABEL: @min6( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 136 | ; CHECK: ret i1 true |
| 137 | ; |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 138 | %c = icmp sge i32 %x, %y |
| 139 | %m = select i1 %c, i32 %y, i32 %x |
| 140 | %r = icmp sge i32 %x, %m |
| 141 | ret i1 %r |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 142 | } |
| 143 | |
| 144 | define i1 @min7(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 145 | ; CHECK-LABEL: @min7( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 146 | ; CHECK: ret i1 false |
| 147 | ; |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 148 | %c = icmp ugt i32 %x, %y |
| 149 | %m = select i1 %c, i32 %y, i32 %x |
| 150 | %r = icmp ult i32 %x, %m |
| 151 | ret i1 %r |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 152 | } |
| 153 | |
| 154 | define i1 @min8(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 155 | ; CHECK-LABEL: @min8( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 156 | ; CHECK: ret i1 true |
| 157 | ; |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 158 | %c = icmp uge i32 %x, %y |
| 159 | %m = select i1 %c, i32 %y, i32 %x |
| 160 | %r = icmp uge i32 %x, %m |
| 161 | ret i1 %r |
Duncan Sands | 0a9c124 | 2011-05-03 19:53:10 +0000 | [diff] [blame] | 162 | } |
Duncan Sands | a228785 | 2011-05-04 16:05:05 +0000 | [diff] [blame] | 163 | |
| 164 | define i1 @maxmin1(i32 %x, i32 %y, i32 %z) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 165 | ; CHECK-LABEL: @maxmin1( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 166 | ; CHECK: ret i1 true |
| 167 | ; |
Duncan Sands | a228785 | 2011-05-04 16:05:05 +0000 | [diff] [blame] | 168 | %c1 = icmp sge i32 %x, %y |
| 169 | %max = select i1 %c1, i32 %x, i32 %y |
| 170 | %c2 = icmp sge i32 %x, %z |
| 171 | %min = select i1 %c2, i32 %z, i32 %x |
| 172 | %c = icmp sge i32 %max, %min |
| 173 | ret i1 %c |
Duncan Sands | a228785 | 2011-05-04 16:05:05 +0000 | [diff] [blame] | 174 | } |
| 175 | |
| 176 | define i1 @maxmin2(i32 %x, i32 %y, i32 %z) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 177 | ; CHECK-LABEL: @maxmin2( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 178 | ; CHECK: ret i1 false |
| 179 | ; |
Duncan Sands | a228785 | 2011-05-04 16:05:05 +0000 | [diff] [blame] | 180 | %c1 = icmp sge i32 %x, %y |
| 181 | %max = select i1 %c1, i32 %x, i32 %y |
| 182 | %c2 = icmp sge i32 %x, %z |
| 183 | %min = select i1 %c2, i32 %z, i32 %x |
| 184 | %c = icmp sgt i32 %min, %max |
| 185 | ret i1 %c |
Duncan Sands | a228785 | 2011-05-04 16:05:05 +0000 | [diff] [blame] | 186 | } |
| 187 | |
| 188 | define i1 @maxmin3(i32 %x, i32 %y, i32 %z) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 189 | ; CHECK-LABEL: @maxmin3( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 190 | ; CHECK: ret i1 true |
| 191 | ; |
Duncan Sands | a228785 | 2011-05-04 16:05:05 +0000 | [diff] [blame] | 192 | %c1 = icmp sge i32 %x, %y |
| 193 | %max = select i1 %c1, i32 %x, i32 %y |
| 194 | %c2 = icmp sge i32 %x, %z |
| 195 | %min = select i1 %c2, i32 %z, i32 %x |
| 196 | %c = icmp sle i32 %min, %max |
| 197 | ret i1 %c |
Duncan Sands | a228785 | 2011-05-04 16:05:05 +0000 | [diff] [blame] | 198 | } |
| 199 | |
| 200 | define i1 @maxmin4(i32 %x, i32 %y, i32 %z) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 201 | ; CHECK-LABEL: @maxmin4( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 202 | ; CHECK: ret i1 false |
| 203 | ; |
Duncan Sands | a228785 | 2011-05-04 16:05:05 +0000 | [diff] [blame] | 204 | %c1 = icmp sge i32 %x, %y |
| 205 | %max = select i1 %c1, i32 %x, i32 %y |
| 206 | %c2 = icmp sge i32 %x, %z |
| 207 | %min = select i1 %c2, i32 %z, i32 %x |
| 208 | %c = icmp slt i32 %max, %min |
| 209 | ret i1 %c |
Duncan Sands | a228785 | 2011-05-04 16:05:05 +0000 | [diff] [blame] | 210 | } |
| 211 | |
| 212 | define i1 @maxmin5(i32 %x, i32 %y, i32 %z) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 213 | ; CHECK-LABEL: @maxmin5( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 214 | ; CHECK: ret i1 true |
| 215 | ; |
Duncan Sands | a228785 | 2011-05-04 16:05:05 +0000 | [diff] [blame] | 216 | %c1 = icmp uge i32 %x, %y |
| 217 | %max = select i1 %c1, i32 %x, i32 %y |
| 218 | %c2 = icmp uge i32 %x, %z |
| 219 | %min = select i1 %c2, i32 %z, i32 %x |
| 220 | %c = icmp uge i32 %max, %min |
| 221 | ret i1 %c |
Duncan Sands | a228785 | 2011-05-04 16:05:05 +0000 | [diff] [blame] | 222 | } |
| 223 | |
| 224 | define i1 @maxmin6(i32 %x, i32 %y, i32 %z) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 225 | ; CHECK-LABEL: @maxmin6( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 226 | ; CHECK: ret i1 false |
| 227 | ; |
Duncan Sands | a228785 | 2011-05-04 16:05:05 +0000 | [diff] [blame] | 228 | %c1 = icmp uge i32 %x, %y |
| 229 | %max = select i1 %c1, i32 %x, i32 %y |
| 230 | %c2 = icmp uge i32 %x, %z |
| 231 | %min = select i1 %c2, i32 %z, i32 %x |
| 232 | %c = icmp ugt i32 %min, %max |
| 233 | ret i1 %c |
Duncan Sands | a228785 | 2011-05-04 16:05:05 +0000 | [diff] [blame] | 234 | } |
| 235 | |
| 236 | define i1 @maxmin7(i32 %x, i32 %y, i32 %z) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 237 | ; CHECK-LABEL: @maxmin7( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 238 | ; CHECK: ret i1 true |
| 239 | ; |
Duncan Sands | a228785 | 2011-05-04 16:05:05 +0000 | [diff] [blame] | 240 | %c1 = icmp uge i32 %x, %y |
| 241 | %max = select i1 %c1, i32 %x, i32 %y |
| 242 | %c2 = icmp uge i32 %x, %z |
| 243 | %min = select i1 %c2, i32 %z, i32 %x |
| 244 | %c = icmp ule i32 %min, %max |
| 245 | ret i1 %c |
Duncan Sands | a228785 | 2011-05-04 16:05:05 +0000 | [diff] [blame] | 246 | } |
| 247 | |
| 248 | define i1 @maxmin8(i32 %x, i32 %y, i32 %z) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 249 | ; CHECK-LABEL: @maxmin8( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 250 | ; CHECK: ret i1 false |
| 251 | ; |
Duncan Sands | a228785 | 2011-05-04 16:05:05 +0000 | [diff] [blame] | 252 | %c1 = icmp uge i32 %x, %y |
| 253 | %max = select i1 %c1, i32 %x, i32 %y |
| 254 | %c2 = icmp uge i32 %x, %z |
| 255 | %min = select i1 %c2, i32 %z, i32 %x |
| 256 | %c = icmp ult i32 %max, %min |
| 257 | ret i1 %c |
Duncan Sands | a228785 | 2011-05-04 16:05:05 +0000 | [diff] [blame] | 258 | } |
Duncan Sands | af32728 | 2011-05-07 16:56:49 +0000 | [diff] [blame] | 259 | |
| 260 | define i1 @eqcmp1(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 261 | ; CHECK-LABEL: @eqcmp1( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 262 | ; CHECK: [[C:%.*]] = icmp sge i32 %x, %y |
| 263 | ; CHECK-NEXT: ret i1 [[C]] |
| 264 | ; |
Duncan Sands | af32728 | 2011-05-07 16:56:49 +0000 | [diff] [blame] | 265 | %c = icmp sge i32 %x, %y |
| 266 | %max = select i1 %c, i32 %x, i32 %y |
| 267 | %r = icmp eq i32 %max, %x |
| 268 | ret i1 %r |
Duncan Sands | af32728 | 2011-05-07 16:56:49 +0000 | [diff] [blame] | 269 | } |
| 270 | |
| 271 | define i1 @eqcmp2(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 272 | ; CHECK-LABEL: @eqcmp2( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 273 | ; CHECK: [[C:%.*]] = icmp sge i32 %x, %y |
| 274 | ; CHECK-NEXT: ret i1 [[C]] |
| 275 | ; |
Duncan Sands | af32728 | 2011-05-07 16:56:49 +0000 | [diff] [blame] | 276 | %c = icmp sge i32 %x, %y |
| 277 | %max = select i1 %c, i32 %x, i32 %y |
| 278 | %r = icmp eq i32 %x, %max |
| 279 | ret i1 %r |
Duncan Sands | af32728 | 2011-05-07 16:56:49 +0000 | [diff] [blame] | 280 | } |
| 281 | |
| 282 | define i1 @eqcmp3(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 283 | ; CHECK-LABEL: @eqcmp3( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 284 | ; CHECK: [[C:%.*]] = icmp uge i32 %x, %y |
| 285 | ; CHECK-NEXT: ret i1 [[C]] |
| 286 | ; |
Duncan Sands | af32728 | 2011-05-07 16:56:49 +0000 | [diff] [blame] | 287 | %c = icmp uge i32 %x, %y |
| 288 | %max = select i1 %c, i32 %x, i32 %y |
| 289 | %r = icmp eq i32 %max, %x |
| 290 | ret i1 %r |
Duncan Sands | af32728 | 2011-05-07 16:56:49 +0000 | [diff] [blame] | 291 | } |
| 292 | |
| 293 | define i1 @eqcmp4(i32 %x, i32 %y) { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 294 | ; CHECK-LABEL: @eqcmp4( |
Sanjay Patel | 6963244 | 2016-03-25 20:12:25 +0000 | [diff] [blame] | 295 | ; CHECK: [[C:%.*]] = icmp uge i32 %x, %y |
| 296 | ; CHECK-NEXT: ret i1 [[C]] |
| 297 | ; |
Duncan Sands | af32728 | 2011-05-07 16:56:49 +0000 | [diff] [blame] | 298 | %c = icmp uge i32 %x, %y |
| 299 | %max = select i1 %c, i32 %x, i32 %y |
| 300 | %r = icmp eq i32 %x, %max |
| 301 | ret i1 %r |
Duncan Sands | af32728 | 2011-05-07 16:56:49 +0000 | [diff] [blame] | 302 | } |