1 define <16 x i8> @_Z8icmpi1EqDv16_aS_(<16 x i8> %a, <16 x i8> %b) { 2 entry: 3 %a.trunc = trunc <16 x i8> %a to <16 x i1> 4 %b.trunc = trunc <16 x i8> %b to <16 x i1> 5 %cmp = icmp eq <16 x i1> %a.trunc, %b.trunc 6 %cmp.sext = sext <16 x i1> %cmp to <16 x i8> 7 ret <16 x i8> %cmp.sext 8 } 9 10 define <16 x i8> @_Z8icmpi1NeDv16_aS_(<16 x i8> %a, <16 x i8> %b) { 11 entry: 12 %a.trunc = trunc <16 x i8> %a to <16 x i1> 13 %b.trunc = trunc <16 x i8> %b to <16 x i1> 14 %cmp = icmp ne <16 x i1> %a.trunc, %b.trunc 15 %cmp.sext = sext <16 x i1> %cmp to <16 x i8> 16 ret <16 x i8> %cmp.sext 17 } 18 19 define <16 x i8> @_Z9icmpi1UgtDv16_aS_(<16 x i8> %a, <16 x i8> %b) { 20 entry: 21 %a.trunc = trunc <16 x i8> %a to <16 x i1> 22 %b.trunc = trunc <16 x i8> %b to <16 x i1> 23 %cmp = icmp ugt <16 x i1> %a.trunc, %b.trunc 24 %cmp.sext = sext <16 x i1> %cmp to <16 x i8> 25 ret <16 x i8> %cmp.sext 26 } 27 28 define <16 x i8> @_Z9icmpi1UgeDv16_aS_(<16 x i8> %a, <16 x i8> %b) { 29 entry: 30 %a.trunc = trunc <16 x i8> %a to <16 x i1> 31 %b.trunc = trunc <16 x i8> %b to <16 x i1> 32 %cmp = icmp uge <16 x i1> %a.trunc, %b.trunc 33 %cmp.sext = sext <16 x i1> %cmp to <16 x i8> 34 ret <16 x i8> %cmp.sext 35 } 36 37 define <16 x i8> @_Z9icmpi1UltDv16_aS_(<16 x i8> %a, <16 x i8> %b) { 38 entry: 39 %a.trunc = trunc <16 x i8> %a to <16 x i1> 40 %b.trunc = trunc <16 x i8> %b to <16 x i1> 41 %cmp = icmp ult <16 x i1> %a.trunc, %b.trunc 42 %cmp.sext = sext <16 x i1> %cmp to <16 x i8> 43 ret <16 x i8> %cmp.sext 44 } 45 46 define <16 x i8> @_Z9icmpi1UleDv16_aS_(<16 x i8> %a, <16 x i8> %b) { 47 entry: 48 %a.trunc = trunc <16 x i8> %a to <16 x i1> 49 %b.trunc = trunc <16 x i8> %b to <16 x i1> 50 %cmp = icmp ule <16 x i1> %a.trunc, %b.trunc 51 %cmp.sext = sext <16 x i1> %cmp to <16 x i8> 52 ret <16 x i8> %cmp.sext 53 } 54 55 define <16 x i8> @_Z9icmpi1SgtDv16_aS_(<16 x i8> %a, <16 x i8> %b) { 56 entry: 57 %a.trunc = trunc <16 x i8> %a to <16 x i1> 58 %b.trunc = trunc <16 x i8> %b to <16 x i1> 59 %cmp = icmp sgt <16 x i1> %a.trunc, %b.trunc 60 %cmp.sext = sext <16 x i1> %cmp to <16 x i8> 61 ret <16 x i8> %cmp.sext 62 } 63 64 define <16 x i8> @_Z9icmpi1SgeDv16_aS_(<16 x i8> %a, <16 x i8> %b) { 65 entry: 66 %a.trunc = trunc <16 x i8> %a to <16 x i1> 67 %b.trunc = trunc <16 x i8> %b to <16 x i1> 68 %cmp = icmp sge <16 x i1> %a.trunc, %b.trunc 69 %cmp.sext = sext <16 x i1> %cmp to <16 x i8> 70 ret <16 x i8> %cmp.sext 71 } 72 73 define <16 x i8> @_Z9icmpi1SltDv16_aS_(<16 x i8> %a, <16 x i8> %b) { 74 entry: 75 %a.trunc = trunc <16 x i8> %a to <16 x i1> 76 %b.trunc = trunc <16 x i8> %b to <16 x i1> 77 %cmp = icmp slt <16 x i1> %a.trunc, %b.trunc 78 %cmp.sext = sext <16 x i1> %cmp to <16 x i8> 79 ret <16 x i8> %cmp.sext 80 } 81 82 define <16 x i8> @_Z9icmpi1SleDv16_aS_(<16 x i8> %a, <16 x i8> %b) { 83 entry: 84 %a.trunc = trunc <16 x i8> %a to <16 x i1> 85 %b.trunc = trunc <16 x i8> %b to <16 x i1> 86 %cmp = icmp sle <16 x i1> %a.trunc, %b.trunc 87 %cmp.sext = sext <16 x i1> %cmp to <16 x i8> 88 ret <16 x i8> %cmp.sext 89 } 90 91 define <8 x i16> @_Z8icmpi1EqDv8_sS_(<8 x i16> %a, <8 x i16> %b) { 92 entry: 93 %a.trunc = trunc <8 x i16> %a to <8 x i1> 94 %b.trunc = trunc <8 x i16> %b to <8 x i1> 95 %cmp = icmp eq <8 x i1> %a.trunc, %b.trunc 96 %cmp.sext = sext <8 x i1> %cmp to <8 x i16> 97 ret <8 x i16> %cmp.sext 98 } 99 100 define <8 x i16> @_Z8icmpi1NeDv8_sS_(<8 x i16> %a, <8 x i16> %b) { 101 entry: 102 %a.trunc = trunc <8 x i16> %a to <8 x i1> 103 %b.trunc = trunc <8 x i16> %b to <8 x i1> 104 %cmp = icmp ne <8 x i1> %a.trunc, %b.trunc 105 %cmp.sext = sext <8 x i1> %cmp to <8 x i16> 106 ret <8 x i16> %cmp.sext 107 } 108 109 define <8 x i16> @_Z9icmpi1UgtDv8_sS_(<8 x i16> %a, <8 x i16> %b) { 110 entry: 111 %a.trunc = trunc <8 x i16> %a to <8 x i1> 112 %b.trunc = trunc <8 x i16> %b to <8 x i1> 113 %cmp = icmp ugt <8 x i1> %a.trunc, %b.trunc 114 %cmp.sext = sext <8 x i1> %cmp to <8 x i16> 115 ret <8 x i16> %cmp.sext 116 } 117 118 define <8 x i16> @_Z9icmpi1UgeDv8_sS_(<8 x i16> %a, <8 x i16> %b) { 119 entry: 120 %a.trunc = trunc <8 x i16> %a to <8 x i1> 121 %b.trunc = trunc <8 x i16> %b to <8 x i1> 122 %cmp = icmp uge <8 x i1> %a.trunc, %b.trunc 123 %cmp.sext = sext <8 x i1> %cmp to <8 x i16> 124 ret <8 x i16> %cmp.sext 125 } 126 127 define <8 x i16> @_Z9icmpi1UltDv8_sS_(<8 x i16> %a, <8 x i16> %b) { 128 entry: 129 %a.trunc = trunc <8 x i16> %a to <8 x i1> 130 %b.trunc = trunc <8 x i16> %b to <8 x i1> 131 %cmp = icmp ult <8 x i1> %a.trunc, %b.trunc 132 %cmp.sext = sext <8 x i1> %cmp to <8 x i16> 133 ret <8 x i16> %cmp.sext 134 } 135 136 define <8 x i16> @_Z9icmpi1UleDv8_sS_(<8 x i16> %a, <8 x i16> %b) { 137 entry: 138 %a.trunc = trunc <8 x i16> %a to <8 x i1> 139 %b.trunc = trunc <8 x i16> %b to <8 x i1> 140 %cmp = icmp ule <8 x i1> %a.trunc, %b.trunc 141 %cmp.sext = sext <8 x i1> %cmp to <8 x i16> 142 ret <8 x i16> %cmp.sext 143 } 144 145 define <8 x i16> @_Z9icmpi1SgtDv8_sS_(<8 x i16> %a, <8 x i16> %b) { 146 entry: 147 %a.trunc = trunc <8 x i16> %a to <8 x i1> 148 %b.trunc = trunc <8 x i16> %b to <8 x i1> 149 %cmp = icmp sgt <8 x i1> %a.trunc, %b.trunc 150 %cmp.sext = sext <8 x i1> %cmp to <8 x i16> 151 ret <8 x i16> %cmp.sext 152 } 153 154 define <8 x i16> @_Z9icmpi1SgeDv8_sS_(<8 x i16> %a, <8 x i16> %b) { 155 entry: 156 %a.trunc = trunc <8 x i16> %a to <8 x i1> 157 %b.trunc = trunc <8 x i16> %b to <8 x i1> 158 %cmp = icmp sge <8 x i1> %a.trunc, %b.trunc 159 %cmp.sext = sext <8 x i1> %cmp to <8 x i16> 160 ret <8 x i16> %cmp.sext 161 } 162 163 define <8 x i16> @_Z9icmpi1SltDv8_sS_(<8 x i16> %a, <8 x i16> %b) { 164 entry: 165 %a.trunc = trunc <8 x i16> %a to <8 x i1> 166 %b.trunc = trunc <8 x i16> %b to <8 x i1> 167 %cmp = icmp slt <8 x i1> %a.trunc, %b.trunc 168 %cmp.sext = sext <8 x i1> %cmp to <8 x i16> 169 ret <8 x i16> %cmp.sext 170 } 171 172 define <8 x i16> @_Z9icmpi1SleDv8_sS_(<8 x i16> %a, <8 x i16> %b) { 173 entry: 174 %a.trunc = trunc <8 x i16> %a to <8 x i1> 175 %b.trunc = trunc <8 x i16> %b to <8 x i1> 176 %cmp = icmp sle <8 x i1> %a.trunc, %b.trunc 177 %cmp.sext = sext <8 x i1> %cmp to <8 x i16> 178 ret <8 x i16> %cmp.sext 179 } 180 181 define <4 x i32> @_Z8icmpi1EqDv4_iS_(<4 x i32> %a, <4 x i32> %b) { 182 entry: 183 %a.trunc = trunc <4 x i32> %a to <4 x i1> 184 %b.trunc = trunc <4 x i32> %b to <4 x i1> 185 %cmp = icmp eq <4 x i1> %a.trunc, %b.trunc 186 %cmp.sext = sext <4 x i1> %cmp to <4 x i32> 187 ret <4 x i32> %cmp.sext 188 } 189 190 define <4 x i32> @_Z8icmpi1NeDv4_iS_(<4 x i32> %a, <4 x i32> %b) { 191 entry: 192 %a.trunc = trunc <4 x i32> %a to <4 x i1> 193 %b.trunc = trunc <4 x i32> %b to <4 x i1> 194 %cmp = icmp ne <4 x i1> %a.trunc, %b.trunc 195 %cmp.sext = sext <4 x i1> %cmp to <4 x i32> 196 ret <4 x i32> %cmp.sext 197 } 198 199 define <4 x i32> @_Z9icmpi1UgtDv4_iS_(<4 x i32> %a, <4 x i32> %b) { 200 entry: 201 %a.trunc = trunc <4 x i32> %a to <4 x i1> 202 %b.trunc = trunc <4 x i32> %b to <4 x i1> 203 %cmp = icmp ugt <4 x i1> %a.trunc, %b.trunc 204 %cmp.sext = sext <4 x i1> %cmp to <4 x i32> 205 ret <4 x i32> %cmp.sext 206 } 207 208 define <4 x i32> @_Z9icmpi1UgeDv4_iS_(<4 x i32> %a, <4 x i32> %b) { 209 entry: 210 %a.trunc = trunc <4 x i32> %a to <4 x i1> 211 %b.trunc = trunc <4 x i32> %b to <4 x i1> 212 %cmp = icmp uge <4 x i1> %a.trunc, %b.trunc 213 %cmp.sext = sext <4 x i1> %cmp to <4 x i32> 214 ret <4 x i32> %cmp.sext 215 } 216 217 define <4 x i32> @_Z9icmpi1UltDv4_iS_(<4 x i32> %a, <4 x i32> %b) { 218 entry: 219 %a.trunc = trunc <4 x i32> %a to <4 x i1> 220 %b.trunc = trunc <4 x i32> %b to <4 x i1> 221 %cmp = icmp ult <4 x i1> %a.trunc, %b.trunc 222 %cmp.sext = sext <4 x i1> %cmp to <4 x i32> 223 ret <4 x i32> %cmp.sext 224 } 225 226 define <4 x i32> @_Z9icmpi1UleDv4_iS_(<4 x i32> %a, <4 x i32> %b) { 227 entry: 228 %a.trunc = trunc <4 x i32> %a to <4 x i1> 229 %b.trunc = trunc <4 x i32> %b to <4 x i1> 230 %cmp = icmp ule <4 x i1> %a.trunc, %b.trunc 231 %cmp.sext = sext <4 x i1> %cmp to <4 x i32> 232 ret <4 x i32> %cmp.sext 233 } 234 235 define <4 x i32> @_Z9icmpi1SgtDv4_iS_(<4 x i32> %a, <4 x i32> %b) { 236 entry: 237 %a.trunc = trunc <4 x i32> %a to <4 x i1> 238 %b.trunc = trunc <4 x i32> %b to <4 x i1> 239 %cmp = icmp sgt <4 x i1> %a.trunc, %b.trunc 240 %cmp.sext = sext <4 x i1> %cmp to <4 x i32> 241 ret <4 x i32> %cmp.sext 242 } 243 244 define <4 x i32> @_Z9icmpi1SgeDv4_iS_(<4 x i32> %a, <4 x i32> %b) { 245 entry: 246 %a.trunc = trunc <4 x i32> %a to <4 x i1> 247 %b.trunc = trunc <4 x i32> %b to <4 x i1> 248 %cmp = icmp sge <4 x i1> %a.trunc, %b.trunc 249 %cmp.sext = sext <4 x i1> %cmp to <4 x i32> 250 ret <4 x i32> %cmp.sext 251 } 252 253 define <4 x i32> @_Z9icmpi1SltDv4_iS_(<4 x i32> %a, <4 x i32> %b) { 254 entry: 255 %a.trunc = trunc <4 x i32> %a to <4 x i1> 256 %b.trunc = trunc <4 x i32> %b to <4 x i1> 257 %cmp = icmp slt <4 x i1> %a.trunc, %b.trunc 258 %cmp.sext = sext <4 x i1> %cmp to <4 x i32> 259 ret <4 x i32> %cmp.sext 260 } 261 262 define <4 x i32> @_Z9icmpi1SleDv4_iS_(<4 x i32> %a, <4 x i32> %b) { 263 entry: 264 %a.trunc = trunc <4 x i32> %a to <4 x i1> 265 %b.trunc = trunc <4 x i32> %b to <4 x i1> 266 %cmp = icmp sle <4 x i1> %a.trunc, %b.trunc 267 %cmp.sext = sext <4 x i1> %cmp to <4 x i32> 268 ret <4 x i32> %cmp.sext 269 } 270