1 ; RUN: not llc -march=mips -mattr=+msa,+fp64 -relocation-model=pic < %s 2> %t1 2 ; RUN: FileCheck %s < %t1 3 4 ; Test that the immediate intrinsics with out of range values trigger an error. 5 6 7 define void @binsli_b(<16 x i8> * %ptr) { 8 entry: 9 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 10 %r = call <16 x i8> @llvm.mips.binsli.b(<16 x i8> %a, <16 x i8> %a, i32 65) 11 store <16 x i8> %r, <16 x i8> * %ptr, align 16 12 ret void 13 } 14 ; CHECK: LLVM ERROR: Immediate out of range 15 16 define void @binsri_b(<16 x i8> * %ptr) { 17 entry: 18 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 19 %r = call <16 x i8> @llvm.mips.binsri.b(<16 x i8> %a, <16 x i8> %a, i32 5) 20 store <16 x i8> %r, <16 x i8> * %ptr, align 16 21 ret void 22 } 23 24 define void @bmnzi_b(<16 x i8> * %ptr) { 25 entry: 26 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 27 %r = call <16 x i8> @llvm.mips.bmnzi.b(<16 x i8> %a, <16 x i8> %a, i32 63) 28 store <16 x i8> %r, <16 x i8> * %ptr, align 16 29 ret void 30 } 31 32 define void @bmzi_b(<16 x i8> * %ptr) { 33 entry: 34 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 35 %r = call <16 x i8> @llvm.mips.bmzi.b(<16 x i8> %a, <16 x i8> %a, i32 63) 36 store <16 x i8> %r, <16 x i8> * %ptr, align 16 37 ret void 38 } 39 40 define void @bnegi_b(<16 x i8> * %ptr) { 41 entry: 42 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 43 %r = call <16 x i8> @llvm.mips.bnegi.b(<16 x i8> %a, i32 6) 44 store <16 x i8> %r, <16 x i8> * %ptr, align 16 45 ret void 46 } 47 48 define void @bseli_b(<16 x i8> * %ptr) { 49 entry: 50 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 51 %r = call <16 x i8> @llvm.mips.bseli.b(<16 x i8> %a, <16 x i8> %a, i32 63) 52 store <16 x i8> %r, <16 x i8> * %ptr, align 16 53 ret void 54 } 55 56 define void @bseti_b(<16 x i8> * %ptr) { 57 entry: 58 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 59 %r = call <16 x i8> @llvm.mips.bseti.b(<16 x i8> %a, i32 9) 60 store <16 x i8> %r, <16 x i8> * %ptr, align 16 61 ret void 62 } 63 64 define void @clei_s_b(<16 x i8> * %ptr) { 65 entry: 66 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 67 %r = call <16 x i8> @llvm.mips.clei.s.b(<16 x i8> %a, i32 152) 68 store <16 x i8> %r, <16 x i8> * %ptr, align 16 69 ret void 70 } 71 72 define void @clei_u_b(<16 x i8> * %ptr) { 73 entry: 74 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 75 %r = call <16 x i8> @llvm.mips.clei.u.b(<16 x i8> %a, i32 163) 76 store <16 x i8> %r, <16 x i8> * %ptr, align 16 77 ret void 78 } 79 80 define void @clti_s_b(<16 x i8> * %ptr) { 81 entry: 82 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 83 %r = call <16 x i8> @llvm.mips.clti.s.b(<16 x i8> %a, i32 129) 84 store <16 x i8> %r, <16 x i8> * %ptr, align 16 85 ret void 86 } 87 88 define void @clti_u_b(<16 x i8> * %ptr) { 89 entry: 90 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 91 %r = call <16 x i8> @llvm.mips.clti.u.b(<16 x i8> %a, i32 163) 92 store <16 x i8> %r, <16 x i8> * %ptr, align 16 93 ret void 94 } 95 96 define void @ldi_b(<16 x i8> * %ptr) { 97 entry: 98 %r = call <16 x i8> @llvm.mips.ldi.b(i32 1025) 99 store <16 x i8> %r, <16 x i8> * %ptr, align 16 100 ret void 101 } 102 103 define void @maxi_s_b(<16 x i8> * %ptr) { 104 entry: 105 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 106 %r = call <16 x i8> @llvm.mips.maxi.s.b(<16 x i8> %a, i32 163) 107 store <16 x i8> %r, <16 x i8> * %ptr, align 16 108 ret void 109 } 110 111 define void @maxi_u_b(<16 x i8> * %ptr) { 112 entry: 113 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 114 %r = call <16 x i8> @llvm.mips.maxi.u.b(<16 x i8> %a, i32 163) 115 store <16 x i8> %r, <16 x i8> * %ptr, align 16 116 ret void 117 } 118 119 define void @mini_s_b(<16 x i8> * %ptr) { 120 entry: 121 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 122 %r = call <16 x i8> @llvm.mips.mini.s.b(<16 x i8> %a, i32 163) 123 store <16 x i8> %r, <16 x i8> * %ptr, align 16 124 ret void 125 } 126 127 define void @mini_u_b(<16 x i8> * %ptr) { 128 entry: 129 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 130 %r = call <16 x i8> @llvm.mips.mini.u.b(<16 x i8> %a, i32 163) 131 store <16 x i8> %r, <16 x i8> * %ptr, align 16 132 ret void 133 } 134 135 define void @nori_b(<16 x i8> * %ptr) { 136 entry: 137 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 138 %r = call <16 x i8> @llvm.mips.nori.b(<16 x i8> %a, i32 63) 139 store <16 x i8> %r, <16 x i8> * %ptr, align 16 140 ret void 141 } 142 143 define void @ori_b(<16 x i8> * %ptr) { 144 entry: 145 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 146 %r = call <16 x i8> @llvm.mips.ori.b(<16 x i8> %a, i32 63) 147 store <16 x i8> %r, <16 x i8> * %ptr, align 16 148 ret void 149 } 150 151 define void @sldi_b(<16 x i8> * %ptr) { 152 entry: 153 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 154 %r = call <16 x i8> @llvm.mips.sldi.b(<16 x i8> %a, <16 x i8> %a, i32 7) 155 store <16 x i8> %r, <16 x i8> * %ptr, align 16 156 ret void 157 } 158 159 define void @slli_b(<16 x i8> * %ptr) { 160 entry: 161 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 162 %r = call <16 x i8> @llvm.mips.slli.b(<16 x i8> %a, i32 65) 163 store <16 x i8> %r, <16 x i8> * %ptr, align 16 164 ret void 165 } 166 167 define void @splati_b(<16 x i8> * %ptr) { 168 entry: 169 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 170 %r = call <16 x i8> @llvm.mips.splati.b(<16 x i8> %a, i32 65) 171 store <16 x i8> %r, <16 x i8> * %ptr, align 16 172 ret void 173 } 174 175 define void @srai_b(<16 x i8> * %ptr) { 176 entry: 177 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 178 %r = call <16 x i8> @llvm.mips.srai.b(<16 x i8> %a, i32 65) 179 store <16 x i8> %r, <16 x i8> * %ptr, align 16 180 ret void 181 } 182 183 define void @srari_b(<16 x i8> * %ptr) { 184 entry: 185 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 186 %r = call <16 x i8> @llvm.mips.srari.b(<16 x i8> %a, i32 65) 187 store <16 x i8> %r, <16 x i8> * %ptr, align 16 188 ret void 189 } 190 191 define void @srli_b(<16 x i8> * %ptr) { 192 entry: 193 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 194 %r = call <16 x i8> @llvm.mips.srli.b(<16 x i8> %a, i32 65) 195 store <16 x i8> %r, <16 x i8> * %ptr, align 16 196 ret void 197 } 198 199 define void @srlri_b(<16 x i8> * %ptr) { 200 entry: 201 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 202 %r = call <16 x i8> @llvm.mips.srlri.b(<16 x i8> %a, i32 65) 203 store <16 x i8> %r, <16 x i8> * %ptr, align 16 204 ret void 205 } 206 207 define void @addvi_w(<4 x i32> * %ptr) { 208 entry: 209 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 210 %r = call <4 x i32> @llvm.mips.addvi.w(<4 x i32> %a, i32 63) 211 store <4 x i32> %r, <4 x i32> * %ptr, align 16 212 ret void 213 } 214 215 define void @bclri_w(<4 x i32> * %ptr) { 216 entry: 217 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 218 %r = call <4 x i32> @llvm.mips.bclri.w(<4 x i32> %a, i32 63) 219 store <4 x i32> %r, <4 x i32> * %ptr, align 16 220 ret void 221 } 222 223 define void @binsli_w(<4 x i32> * %ptr) { 224 entry: 225 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 226 %r = call <4 x i32> @llvm.mips.binsli.w(<4 x i32> %a, <4 x i32> %a, i32 63) 227 store <4 x i32> %r, <4 x i32> * %ptr, align 16 228 ret void 229 } 230 231 define void @binsri_w(<4 x i32> * %ptr) { 232 entry: 233 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 234 %r = call <4 x i32> @llvm.mips.binsri.w(<4 x i32> %a, <4 x i32> %a, i32 63) 235 store <4 x i32> %r, <4 x i32> * %ptr, align 16 236 ret void 237 } 238 239 define void @bnegi_w(<4 x i32> * %ptr) { 240 entry: 241 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 242 %r = call <4 x i32> @llvm.mips.bnegi.w(<4 x i32> %a, i32 63) 243 store <4 x i32> %r, <4 x i32> * %ptr, align 16 244 ret void 245 } 246 247 define void @bseti_w(<4 x i32> * %ptr) { 248 entry: 249 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 250 %r = call <4 x i32> @llvm.mips.bseti.w(<4 x i32> %a, i32 63) 251 store <4 x i32> %r, <4 x i32> * %ptr, align 16 252 ret void 253 } 254 255 define void @clei_s_w(<4 x i32> * %ptr) { 256 entry: 257 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 258 %r = call <4 x i32> @llvm.mips.clei.s.w(<4 x i32> %a, i32 63) 259 store <4 x i32> %r, <4 x i32> * %ptr, align 16 260 ret void 261 } 262 263 define void @clei_u_w(<4 x i32> * %ptr) { 264 entry: 265 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 266 %r = call <4 x i32> @llvm.mips.clei.u.w(<4 x i32> %a, i32 63) 267 store <4 x i32> %r, <4 x i32> * %ptr, align 16 268 ret void 269 } 270 271 define void @clti_s_w(<4 x i32> * %ptr) { 272 entry: 273 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 274 %r = call <4 x i32> @llvm.mips.clti.s.w(<4 x i32> %a, i32 63) 275 store <4 x i32> %r, <4 x i32> * %ptr, align 16 276 ret void 277 } 278 279 define void @clti_u_w(<4 x i32> * %ptr) { 280 entry: 281 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 282 %r = call <4 x i32> @llvm.mips.clti.u.w(<4 x i32> %a, i32 63) 283 store <4 x i32> %r, <4 x i32> * %ptr, align 16 284 ret void 285 } 286 287 define void @maxi_s_w(<4 x i32> * %ptr) { 288 entry: 289 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 290 %r = call <4 x i32> @llvm.mips.maxi.s.w(<4 x i32> %a, i32 63) 291 store <4 x i32> %r, <4 x i32> * %ptr, align 16 292 ret void 293 } 294 295 define void @maxi_u_w(<4 x i32> * %ptr) { 296 entry: 297 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 298 %r = call <4 x i32> @llvm.mips.maxi.u.w(<4 x i32> %a, i32 63) 299 store <4 x i32> %r, <4 x i32> * %ptr, align 16 300 ret void 301 } 302 303 define void @mini_s_w(<4 x i32> * %ptr) { 304 entry: 305 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 306 %r = call <4 x i32> @llvm.mips.mini.s.w(<4 x i32> %a, i32 63) 307 store <4 x i32> %r, <4 x i32> * %ptr, align 16 308 ret void 309 } 310 311 define void @mini_u_w(<4 x i32> * %ptr) { 312 entry: 313 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 314 %r = call <4 x i32> @llvm.mips.mini.u.w(<4 x i32> %a, i32 63) 315 store <4 x i32> %r, <4 x i32> * %ptr, align 16 316 ret void 317 } 318 319 define void @ldi_w(<4 x i32> * %ptr) { 320 entry: 321 %r = call <4 x i32> @llvm.mips.ldi.w(i32 1024) 322 store <4 x i32> %r, <4 x i32> * %ptr, align 16 323 ret void 324 } 325 326 define void @sldi_w(<4 x i32> * %ptr) { 327 entry: 328 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 329 %r = call <4 x i32> @llvm.mips.sldi.w(<4 x i32> %a, <4 x i32> %a, i32 63) 330 store <4 x i32> %r, <4 x i32> * %ptr, align 16 331 ret void 332 } 333 334 define void @slli_w(<4 x i32> * %ptr) { 335 entry: 336 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 337 %r = call <4 x i32> @llvm.mips.slli.w(<4 x i32> %a, i32 65) 338 store <4 x i32> %r, <4 x i32> * %ptr, align 16 339 ret void 340 } 341 342 define void @splati_w(<4 x i32> * %ptr) { 343 entry: 344 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 345 %r = call <4 x i32> @llvm.mips.splati.w(<4 x i32> %a, i32 65) 346 store <4 x i32> %r, <4 x i32> * %ptr, align 16 347 ret void 348 } 349 350 define void @srai_w(<4 x i32> * %ptr) { 351 entry: 352 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 353 %r = call <4 x i32> @llvm.mips.srai.w(<4 x i32> %a, i32 65) 354 store <4 x i32> %r, <4 x i32> * %ptr, align 16 355 ret void 356 } 357 358 define void @srari_w(<4 x i32> * %ptr) { 359 entry: 360 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 361 %r = call <4 x i32> @llvm.mips.srari.w(<4 x i32> %a, i32 65) 362 store <4 x i32> %r, <4 x i32> * %ptr, align 16 363 ret void 364 } 365 366 define void @srli_w(<4 x i32> * %ptr) { 367 entry: 368 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 369 %r = call <4 x i32> @llvm.mips.srli.w(<4 x i32> %a, i32 65) 370 store <4 x i32> %r, <4 x i32> * %ptr, align 16 371 ret void 372 } 373 374 define void @srlri_w(<4 x i32> * %ptr) { 375 entry: 376 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 377 %r = call <4 x i32> @llvm.mips.srlri.w(<4 x i32> %a, i32 65) 378 store <4 x i32> %r, <4 x i32> * %ptr, align 16 379 ret void 380 } 381 382 define void @addvi_h(<8 x i16> * %ptr) { 383 entry: 384 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 385 %r = call <8 x i16> @llvm.mips.addvi.h(<8 x i16> %a, i32 65) 386 store <8 x i16> %r, <8 x i16> * %ptr, align 16 387 ret void 388 } 389 390 define void @bclri_h(<8 x i16> * %ptr) { 391 entry: 392 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 393 %r = call <8 x i16> @llvm.mips.bclri.h(<8 x i16> %a, i32 16) 394 store <8 x i16> %r, <8 x i16> * %ptr, align 16 395 ret void 396 } 397 398 define void @binsli_h(<8 x i16> * %ptr) { 399 entry: 400 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 401 %r = call <8 x i16> @llvm.mips.binsli.h(<8 x i16> %a, <8 x i16> %a, i32 17) 402 store <8 x i16> %r, <8 x i16> * %ptr, align 16 403 ret void 404 } 405 406 define void @binsri_h(<8 x i16> * %ptr) { 407 entry: 408 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 409 %r = call <8 x i16> @llvm.mips.binsri.h(<8 x i16> %a, <8 x i16> %a, i32 19) 410 store <8 x i16> %r, <8 x i16> * %ptr, align 16 411 ret void 412 } 413 414 define void @bnegi_h(<8 x i16> * %ptr) { 415 entry: 416 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 417 %r = call <8 x i16> @llvm.mips.bnegi.h(<8 x i16> %a, i32 19) 418 store <8 x i16> %r, <8 x i16> * %ptr, align 16 419 ret void 420 } 421 422 define void @bseti_h(<8 x i16> * %ptr) { 423 entry: 424 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 425 %r = call <8 x i16> @llvm.mips.bseti.h(<8 x i16> %a, i32 19) 426 store <8 x i16> %r, <8 x i16> * %ptr, align 16 427 ret void 428 } 429 430 define void @clei_s_h(<8 x i16> * %ptr) { 431 entry: 432 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 433 %r = call <8 x i16> @llvm.mips.clei.s.h(<8 x i16> %a, i32 63) 434 store <8 x i16> %r, <8 x i16> * %ptr, align 16 435 ret void 436 } 437 438 define void @clei_u_h(<8 x i16> * %ptr) { 439 entry: 440 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 441 %r = call <8 x i16> @llvm.mips.clei.u.h(<8 x i16> %a, i32 130) 442 store <8 x i16> %r, <8 x i16> * %ptr, align 16 443 ret void 444 } 445 446 define void @clti_s_h(<8 x i16> * %ptr) { 447 entry: 448 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 449 %r = call <8 x i16> @llvm.mips.clti.s.h(<8 x i16> %a, i32 63) 450 store <8 x i16> %r, <8 x i16> * %ptr, align 16 451 ret void 452 } 453 454 define void @clti_u_h(<8 x i16> * %ptr) { 455 entry: 456 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 457 %r = call <8 x i16> @llvm.mips.clti.u.h(<8 x i16> %a, i32 63) 458 store <8 x i16> %r, <8 x i16> * %ptr, align 16 459 ret void 460 } 461 462 define void @maxi_s_h(<8 x i16> * %ptr) { 463 entry: 464 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 465 %r = call <8 x i16> @llvm.mips.maxi.s.h(<8 x i16> %a, i32 63) 466 store <8 x i16> %r, <8 x i16> * %ptr, align 16 467 ret void 468 } 469 470 define void @maxi_u_h(<8 x i16> * %ptr) { 471 entry: 472 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 473 %r = call <8 x i16> @llvm.mips.maxi.u.h(<8 x i16> %a, i32 130) 474 store <8 x i16> %r, <8 x i16> * %ptr, align 16 475 ret void 476 } 477 478 define void @mini_s_h(<8 x i16> * %ptr) { 479 entry: 480 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 481 %r = call <8 x i16> @llvm.mips.mini.s.h(<8 x i16> %a, i32 63) 482 store <8 x i16> %r, <8 x i16> * %ptr, align 16 483 ret void 484 } 485 486 define void @mini_u_h(<8 x i16> * %ptr) { 487 entry: 488 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 489 %r = call <8 x i16> @llvm.mips.mini.u.h(<8 x i16> %a, i32 130) 490 store <8 x i16> %r, <8 x i16> * %ptr, align 16 491 ret void 492 } 493 494 define void @ldi_h(<8 x i16> * %ptr) { 495 entry: 496 %r = call <8 x i16> @llvm.mips.ldi.h(i32 1024) 497 store <8 x i16> %r, <8 x i16> * %ptr, align 16 498 ret void 499 } 500 501 define void @sldi_h(<8 x i16> * %ptr) { 502 entry: 503 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 504 %r = call <8 x i16> @llvm.mips.sldi.h(<8 x i16> %a, <8 x i16> %a, i32 65) 505 store <8 x i16> %r, <8 x i16> * %ptr, align 16 506 ret void 507 } 508 509 define void @slli_h(<8 x i16> * %ptr) { 510 entry: 511 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 512 %r = call <8 x i16> @llvm.mips.slli.h(<8 x i16> %a, i32 65) 513 store <8 x i16> %r, <8 x i16> * %ptr, align 16 514 ret void 515 } 516 517 define void @splati_h(<8 x i16> * %ptr) { 518 entry: 519 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 520 %r = call <8 x i16> @llvm.mips.splati.h(<8 x i16> %a, i32 65) 521 store <8 x i16> %r, <8 x i16> * %ptr, align 16 522 ret void 523 } 524 525 define void @srai_h(<8 x i16> * %ptr) { 526 entry: 527 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 528 %r = call <8 x i16> @llvm.mips.srai.h(<8 x i16> %a, i32 65) 529 store <8 x i16> %r, <8 x i16> * %ptr, align 16 530 ret void 531 } 532 533 define void @srari_h(<8 x i16> * %ptr) { 534 entry: 535 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 536 %r = call <8 x i16> @llvm.mips.srari.h(<8 x i16> %a, i32 65) 537 store <8 x i16> %r, <8 x i16> * %ptr, align 16 538 ret void 539 } 540 541 define void @srli_h(<8 x i16> * %ptr) { 542 entry: 543 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 544 %r = call <8 x i16> @llvm.mips.srli.h(<8 x i16> %a, i32 65) 545 store <8 x i16> %r, <8 x i16> * %ptr, align 16 546 ret void 547 } 548 549 define void @srlri_h(<8 x i16> * %ptr) { 550 entry: 551 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 552 %r = call <8 x i16> @llvm.mips.srlri.h(<8 x i16> %a, i32 65) 553 store <8 x i16> %r, <8 x i16> * %ptr, align 16 554 ret void 555 } 556 557 define i32 @copy_s_b(<16 x i8> * %ptr) { 558 entry: 559 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 560 %r = call i32 @llvm.mips.copy.s.b(<16 x i8> %a, i32 17) 561 ret i32 %r 562 } 563 564 565 define i32 @copy_s_h(<8 x i16> * %ptr) { 566 entry: 567 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 568 %r = call i32 @llvm.mips.copy.s.h(<8 x i16> %a, i32 9) 569 ret i32 %r 570 } 571 572 573 define i32 @copy_s_w(<4 x i32> * %ptr) { 574 entry: 575 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 576 %r = call i32 @llvm.mips.copy.s.w(<4 x i32> %a, i32 5) 577 ret i32 %r 578 } 579 580 581 define i32 @copy_u_b(<16 x i8> * %ptr) { 582 entry: 583 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 584 %r = call i32 @llvm.mips.copy.u.b(<16 x i8> %a, i32 16) 585 ret i32 %r 586 } 587 588 589 define i32 @copy_u_h(<8 x i16> * %ptr) { 590 entry: 591 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 592 %r = call i32 @llvm.mips.copy.u.h(<8 x i16> %a, i32 9) 593 ret i32 %r 594 } 595 596 597 define i32 @copy_u_w(<4 x i32> * %ptr) { 598 entry: 599 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 600 %r = call i32 @llvm.mips.copy.u.w(<4 x i32> %a, i32 5) 601 ret i32 %r 602 } 603 604 define i64 @copy_s_d(<2 x i64> * %ptr) { 605 entry: %a = load <2 x i64>, <2 x i64> * %ptr, align 16 606 %r = call i64 @llvm.mips.copy.s.d(<2 x i64> %a, i32 3) 607 ret i64 %r 608 } 609 610 define i64 @copy_u_d(<2 x i64> * %ptr) { 611 entry: %a = load <2 x i64>, <2 x i64> * %ptr, align 16 612 %r = call i64 @llvm.mips.copy.u.d(<2 x i64> %a, i32 3) 613 ret i64 %r 614 } 615 616 define void @addvi_d(<2 x i64> * %ptr) { 617 entry: 618 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 619 %r = call <2 x i64> @llvm.mips.addvi.d(<2 x i64> %a, i32 65) 620 store <2 x i64> %r, <2 x i64> * %ptr, align 16 621 ret void 622 } 623 624 define void @bclri_d(<2 x i64> * %ptr) { 625 entry: 626 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 627 %r = call <2 x i64> @llvm.mips.bclri.d(<2 x i64> %a, i32 64) 628 store <2 x i64> %r, <2 x i64> * %ptr, align 16 629 ret void 630 } 631 632 define void @binsli_d(<2 x i64> * %ptr) { 633 entry: 634 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 635 %r = call <2 x i64> @llvm.mips.binsli.d(<2 x i64> %a, <2 x i64> %a, i32 65) 636 store <2 x i64> %r, <2 x i64> * %ptr, align 16 637 ret void 638 } 639 640 define void @binsri_d(<2 x i64> * %ptr) { 641 entry: 642 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 643 %r = call <2 x i64> @llvm.mips.binsri.d(<2 x i64> %a, <2 x i64> %a, i32 65) 644 store <2 x i64> %r, <2 x i64> * %ptr, align 16 645 ret void 646 } 647 648 define void @bnegi_d(<2 x i64> * %ptr) { 649 entry: 650 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 651 %r = call <2 x i64> @llvm.mips.bnegi.d(<2 x i64> %a, i32 65) 652 store <2 x i64> %r, <2 x i64> * %ptr, align 16 653 ret void 654 } 655 656 define void @bseti_d(<2 x i64> * %ptr) { 657 entry: 658 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 659 %r = call <2 x i64> @llvm.mips.bseti.d(<2 x i64> %a, i32 65) 660 store <2 x i64> %r, <2 x i64> * %ptr, align 16 661 ret void 662 } 663 664 define void @clei_s_d(<2 x i64> * %ptr) { 665 entry: 666 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 667 %r = call <2 x i64> @llvm.mips.clei.s.d(<2 x i64> %a, i32 63) 668 store <2 x i64> %r, <2 x i64> * %ptr, align 16 669 ret void 670 } 671 672 define void @clei_u_d(<2 x i64> * %ptr) { 673 entry: 674 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 675 %r = call <2 x i64> @llvm.mips.clei.u.d(<2 x i64> %a, i32 63) 676 store <2 x i64> %r, <2 x i64> * %ptr, align 16 677 ret void 678 } 679 680 define void @clti_s_d(<2 x i64> * %ptr) { 681 entry: 682 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 683 %r = call <2 x i64> @llvm.mips.clti.s.d(<2 x i64> %a, i32 63) 684 store <2 x i64> %r, <2 x i64> * %ptr, align 16 685 ret void 686 } 687 688 define void @clti_u_d(<2 x i64> * %ptr) { 689 entry: 690 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 691 %r = call <2 x i64> @llvm.mips.clti.u.d(<2 x i64> %a, i32 63) 692 store <2 x i64> %r, <2 x i64> * %ptr, align 16 693 ret void 694 } 695 696 define void @ldi_d(<2 x i64> * %ptr) { 697 entry: 698 %r = call <2 x i64> @llvm.mips.ldi.d(i32 1024) 699 store <2 x i64> %r, <2 x i64> * %ptr, align 16 700 ret void 701 } 702 703 define void @maxi_s_d(<2 x i64> * %ptr) { 704 entry: 705 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 706 %r = call <2 x i64> @llvm.mips.maxi.s.d(<2 x i64> %a, i32 63) 707 store <2 x i64> %r, <2 x i64> * %ptr, align 16 708 ret void 709 } 710 711 define void @maxi_u_d(<2 x i64> * %ptr) { 712 entry: 713 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 714 %r = call <2 x i64> @llvm.mips.maxi.u.d(<2 x i64> %a, i32 63) 715 store <2 x i64> %r, <2 x i64> * %ptr, align 16 716 ret void 717 } 718 719 define void @mini_s_d(<2 x i64> * %ptr) { 720 entry: 721 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 722 %r = call <2 x i64> @llvm.mips.mini.s.d(<2 x i64> %a, i32 63) 723 store <2 x i64> %r, <2 x i64> * %ptr, align 16 724 ret void 725 } 726 727 define void @mini_u_d(<2 x i64> * %ptr) { 728 entry: 729 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 730 %r = call <2 x i64> @llvm.mips.mini.u.d(<2 x i64> %a, i32 63) 731 store <2 x i64> %r, <2 x i64> * %ptr, align 16 732 ret void 733 } 734 735 define void @sldi_d(<2 x i64> * %ptr) { 736 entry: 737 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 738 %r = call <2 x i64> @llvm.mips.sldi.d(<2 x i64> %a, <2 x i64> %a, i32 1) 739 store <2 x i64> %r, <2 x i64> * %ptr, align 16 740 ret void 741 } 742 743 define void @slli_d(<2 x i64> * %ptr) { 744 entry: 745 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 746 %r = call <2 x i64> @llvm.mips.slli.d(<2 x i64> %a, i32 65) 747 store <2 x i64> %r, <2 x i64> * %ptr, align 16 748 ret void 749 } 750 751 define void @srai_d(<2 x i64> * %ptr) { 752 entry: 753 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 754 %r = call <2 x i64> @llvm.mips.srai.d(<2 x i64> %a, i32 65) 755 store <2 x i64> %r, <2 x i64> * %ptr, align 16 756 ret void 757 } 758 759 define void @srari_d(<2 x i64> * %ptr) { 760 entry: 761 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 762 %r = call <2 x i64> @llvm.mips.srari.d(<2 x i64> %a, i32 65) 763 store <2 x i64> %r, <2 x i64> * %ptr, align 16 764 ret void 765 } 766 767 define void @srli_d(<2 x i64> * %ptr) { 768 entry: 769 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 770 %r = call <2 x i64> @llvm.mips.srli.d(<2 x i64> %a, i32 65) 771 store <2 x i64> %r, <2 x i64> * %ptr, align 16 772 ret void 773 } 774 775 define void @srlri_d(<2 x i64> * %ptr) { 776 entry: 777 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 778 %r = call <2 x i64> @llvm.mips.srlri.d(<2 x i64> %a, i32 65) 779 store <2 x i64> %r, <2 x i64> * %ptr, align 16 780 ret void 781 }; Negative numbers 782 783 784 define void @neg_addvi_b(<16 x i8> * %ptr) { 785 entry: 786 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 787 %r = call <16 x i8> @llvm.mips.addvi.b(<16 x i8> %a, i32 -25) 788 store <16 x i8> %r, <16 x i8> * %ptr, align 16 789 ret void 790 } 791 792 define void @neg_andi_b(<16 x i8> * %ptr) { 793 entry: 794 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 795 %r = call <16 x i8> @llvm.mips.andi.b(<16 x i8> %a, i32 -25) 796 store <16 x i8> %r, <16 x i8> * %ptr, align 16 797 ret void 798 } 799 800 define void @neg_bclri_b(<16 x i8> * %ptr) { 801 entry: 802 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 803 %r = call <16 x i8> @llvm.mips.bclri.b(<16 x i8> %a, i32 -3) 804 store <16 x i8> %r, <16 x i8> * %ptr, align 16 805 ret void 806 } 807 808 define void @neg_binsli_b(<16 x i8> * %ptr) { 809 entry: 810 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 811 %r = call <16 x i8> @llvm.mips.binsli.b(<16 x i8> %a, <16 x i8> %a, i32 -3) 812 store <16 x i8> %r, <16 x i8> * %ptr, align 16 813 ret void 814 } 815 816 define void @neg_binsri_b(<16 x i8> * %ptr) { 817 entry: 818 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 819 %r = call <16 x i8> @llvm.mips.binsri.b(<16 x i8> %a, <16 x i8> %a, i32 5) 820 store <16 x i8> %r, <16 x i8> * %ptr, align 16 821 ret void 822 } 823 824 define void @neg_bmnzi_b(<16 x i8> * %ptr) { 825 entry: 826 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 827 %r = call <16 x i8> @llvm.mips.bmnzi.b(<16 x i8> %a, <16 x i8> %a, i32 -25) 828 store <16 x i8> %r, <16 x i8> * %ptr, align 16 829 ret void 830 } 831 832 define void @neg_bmzi_b(<16 x i8> * %ptr) { 833 entry: 834 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 835 %r = call <16 x i8> @llvm.mips.bmzi.b(<16 x i8> %a, <16 x i8> %a, i32 -25) 836 store <16 x i8> %r, <16 x i8> * %ptr, align 16 837 ret void 838 } 839 840 define void @neg_bnegi_b(<16 x i8> * %ptr) { 841 entry: 842 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 843 %r = call <16 x i8> @llvm.mips.bnegi.b(<16 x i8> %a, i32 6) 844 store <16 x i8> %r, <16 x i8> * %ptr, align 16 845 ret void 846 } 847 848 define void @neg_bseli_b(<16 x i8> * %ptr) { 849 entry: 850 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 851 %r = call <16 x i8> @llvm.mips.bseli.b(<16 x i8> %a, <16 x i8> %a, i32 -25) 852 store <16 x i8> %r, <16 x i8> * %ptr, align 16 853 ret void 854 } 855 856 define void @neg_bseti_b(<16 x i8> * %ptr) { 857 entry: 858 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 859 %r = call <16 x i8> @llvm.mips.bseti.b(<16 x i8> %a, i32 -5) 860 store <16 x i8> %r, <16 x i8> * %ptr, align 16 861 ret void 862 } 863 864 define void @neg_clei_s_b(<16 x i8> * %ptr) { 865 entry: 866 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 867 %r = call <16 x i8> @llvm.mips.clei.s.b(<16 x i8> %a, i32 -120) 868 store <16 x i8> %r, <16 x i8> * %ptr, align 16 869 ret void 870 } 871 872 define void @neg_clei_u_b(<16 x i8> * %ptr) { 873 entry: 874 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 875 %r = call <16 x i8> @llvm.mips.clei.u.b(<16 x i8> %a, i32 -25) 876 store <16 x i8> %r, <16 x i8> * %ptr, align 16 877 ret void 878 } 879 880 define void @neg_clti_s_b(<16 x i8> * %ptr) { 881 entry: 882 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 883 %r = call <16 x i8> @llvm.mips.clti.s.b(<16 x i8> %a, i32 -35) 884 store <16 x i8> %r, <16 x i8> * %ptr, align 16 885 ret void 886 } 887 888 define void @neg_clti_u_b(<16 x i8> * %ptr) { 889 entry: 890 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 891 %r = call <16 x i8> @llvm.mips.clti.u.b(<16 x i8> %a, i32 -25) 892 store <16 x i8> %r, <16 x i8> * %ptr, align 16 893 ret void 894 } 895 896 define void @neg_ldi_b(<16 x i8> * %ptr) { 897 entry: 898 %r = call <16 x i8> @llvm.mips.ldi.b(i32 -3) 899 store <16 x i8> %r, <16 x i8> * %ptr, align 16 900 ret void 901 } 902 903 define void @neg_maxi_s_b(<16 x i8> * %ptr) { 904 entry: 905 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 906 %r = call <16 x i8> @llvm.mips.maxi.s.b(<16 x i8> %a, i32 2) 907 store <16 x i8> %r, <16 x i8> * %ptr, align 16 908 ret void 909 } 910 911 define void @neg_maxi_u_b(<16 x i8> * %ptr) { 912 entry: 913 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 914 %r = call <16 x i8> @llvm.mips.maxi.u.b(<16 x i8> %a, i32 2) 915 store <16 x i8> %r, <16 x i8> * %ptr, align 16 916 ret void 917 } 918 919 define void @neg_mini_s_b(<16 x i8> * %ptr) { 920 entry: 921 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 922 %r = call <16 x i8> @llvm.mips.mini.s.b(<16 x i8> %a, i32 2) 923 store <16 x i8> %r, <16 x i8> * %ptr, align 16 924 ret void 925 } 926 927 define void @neg_mini_u_b(<16 x i8> * %ptr) { 928 entry: 929 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 930 %r = call <16 x i8> @llvm.mips.mini.u.b(<16 x i8> %a, i32 2) 931 store <16 x i8> %r, <16 x i8> * %ptr, align 16 932 ret void 933 } 934 935 define void @neg_nori_b(<16 x i8> * %ptr) { 936 entry: 937 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 938 %r = call <16 x i8> @llvm.mips.nori.b(<16 x i8> %a, i32 -25) 939 store <16 x i8> %r, <16 x i8> * %ptr, align 16 940 ret void 941 } 942 943 define void @neg_ori_b(<16 x i8> * %ptr) { 944 entry: 945 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 946 %r = call <16 x i8> @llvm.mips.ori.b(<16 x i8> %a, i32 -25) 947 store <16 x i8> %r, <16 x i8> * %ptr, align 16 948 ret void 949 } 950 951 define void @neg_sldi_b(<16 x i8> * %ptr) { 952 entry: 953 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 954 %r = call <16 x i8> @llvm.mips.sldi.b(<16 x i8> %a, <16 x i8> %a, i32 -7) 955 store <16 x i8> %r, <16 x i8> * %ptr, align 16 956 ret void 957 } 958 959 define void @neg_slli_b(<16 x i8> * %ptr) { 960 entry: 961 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 962 %r = call <16 x i8> @llvm.mips.slli.b(<16 x i8> %a, i32 -3) 963 store <16 x i8> %r, <16 x i8> * %ptr, align 16 964 ret void 965 } 966 967 define void @neg_splati_b(<16 x i8> * %ptr) { 968 entry: 969 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 970 %r = call <16 x i8> @llvm.mips.splati.b(<16 x i8> %a, i32 -3) 971 store <16 x i8> %r, <16 x i8> * %ptr, align 16 972 ret void 973 } 974 975 define void @neg_srai_b(<16 x i8> * %ptr) { 976 entry: 977 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 978 %r = call <16 x i8> @llvm.mips.srai.b(<16 x i8> %a, i32 -3) 979 store <16 x i8> %r, <16 x i8> * %ptr, align 16 980 ret void 981 } 982 983 define void @neg_srari_b(<16 x i8> * %ptr) { 984 entry: 985 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 986 %r = call <16 x i8> @llvm.mips.srari.b(<16 x i8> %a, i32 -3) 987 store <16 x i8> %r, <16 x i8> * %ptr, align 16 988 ret void 989 } 990 991 define void @neg_srli_b(<16 x i8> * %ptr) { 992 entry: 993 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 994 %r = call <16 x i8> @llvm.mips.srli.b(<16 x i8> %a, i32 -3) 995 store <16 x i8> %r, <16 x i8> * %ptr, align 16 996 ret void 997 } 998 999 define void @neg_srlri_b(<16 x i8> * %ptr) { 1000 entry: 1001 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 1002 %r = call <16 x i8> @llvm.mips.srlri.b(<16 x i8> %a, i32 -3) 1003 store <16 x i8> %r, <16 x i8> * %ptr, align 16 1004 ret void 1005 } 1006 1007 define void @neg_addvi_w(<4 x i32> * %ptr) { 1008 entry: 1009 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1010 %r = call <4 x i32> @llvm.mips.addvi.w(<4 x i32> %a, i32 -25) 1011 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1012 ret void 1013 } 1014 1015 define void @neg_bclri_w(<4 x i32> * %ptr) { 1016 entry: 1017 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1018 %r = call <4 x i32> @llvm.mips.bclri.w(<4 x i32> %a, i32 -25) 1019 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1020 ret void 1021 } 1022 1023 define void @neg_binsli_w(<4 x i32> * %ptr) { 1024 entry: 1025 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1026 %r = call <4 x i32> @llvm.mips.binsli.w(<4 x i32> %a, <4 x i32> %a, i32 -25) 1027 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1028 ret void 1029 } 1030 1031 define void @neg_binsri_w(<4 x i32> * %ptr) { 1032 entry: 1033 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1034 %r = call <4 x i32> @llvm.mips.binsri.w(<4 x i32> %a, <4 x i32> %a, i32 -25) 1035 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1036 ret void 1037 } 1038 1039 define void @neg_bnegi_w(<4 x i32> * %ptr) { 1040 entry: 1041 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1042 %r = call <4 x i32> @llvm.mips.bnegi.w(<4 x i32> %a, i32 -25) 1043 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1044 ret void 1045 } 1046 1047 define void @neg_bseti_w(<4 x i32> * %ptr) { 1048 entry: 1049 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1050 %r = call <4 x i32> @llvm.mips.bseti.w(<4 x i32> %a, i32 -25) 1051 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1052 ret void 1053 } 1054 1055 define void @neg_clei_s_w(<4 x i32> * %ptr) { 1056 entry: 1057 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1058 %r = call <4 x i32> @llvm.mips.clei.s.w(<4 x i32> %a, i32 -140) 1059 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1060 ret void 1061 } 1062 1063 define void @neg_clei_u_w(<4 x i32> * %ptr) { 1064 entry: 1065 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1066 %r = call <4 x i32> @llvm.mips.clei.u.w(<4 x i32> %a, i32 -25) 1067 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1068 ret void 1069 } 1070 1071 define void @neg_clti_s_w(<4 x i32> * %ptr) { 1072 entry: 1073 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1074 %r = call <4 x i32> @llvm.mips.clti.s.w(<4 x i32> %a, i32 -150) 1075 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1076 ret void 1077 } 1078 1079 define void @neg_clti_u_w(<4 x i32> * %ptr) { 1080 entry: 1081 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1082 %r = call <4 x i32> @llvm.mips.clti.u.w(<4 x i32> %a, i32 -25) 1083 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1084 ret void 1085 } 1086 1087 define void @neg_maxi_s_w(<4 x i32> * %ptr) { 1088 entry: 1089 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1090 %r = call <4 x i32> @llvm.mips.maxi.s.w(<4 x i32> %a, i32 -200) 1091 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1092 ret void 1093 } 1094 1095 define void @neg_maxi_u_w(<4 x i32> * %ptr) { 1096 entry: 1097 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1098 %r = call <4 x i32> @llvm.mips.maxi.u.w(<4 x i32> %a, i32 -200) 1099 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1100 ret void 1101 } 1102 1103 define void @neg_mini_s_w(<4 x i32> * %ptr) { 1104 entry: 1105 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1106 %r = call <4 x i32> @llvm.mips.mini.s.w(<4 x i32> %a, i32 -200) 1107 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1108 ret void 1109 } 1110 1111 define void @neg_mini_u_w(<4 x i32> * %ptr) { 1112 entry: 1113 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1114 %r = call <4 x i32> @llvm.mips.mini.u.w(<4 x i32> %a, i32 -200) 1115 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1116 ret void 1117 } 1118 1119 define void @neg_ldi_w(<4 x i32> * %ptr) { 1120 entry: 1121 %r = call <4 x i32> @llvm.mips.ldi.w(i32 -300) 1122 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1123 ret void 1124 } 1125 1126 define void @neg_sldi_w(<4 x i32> * %ptr) { 1127 entry: 1128 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1129 %r = call <4 x i32> @llvm.mips.sldi.w(<4 x i32> %a, <4 x i32> %a, i32 -20) 1130 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1131 ret void 1132 } 1133 1134 define void @neg_slli_w(<4 x i32> * %ptr) { 1135 entry: 1136 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1137 %r = call <4 x i32> @llvm.mips.slli.w(<4 x i32> %a, i32 -3) 1138 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1139 ret void 1140 } 1141 1142 define void @neg_splati_w(<4 x i32> * %ptr) { 1143 entry: 1144 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1145 %r = call <4 x i32> @llvm.mips.splati.w(<4 x i32> %a, i32 -3) 1146 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1147 ret void 1148 } 1149 1150 define void @neg_srai_w(<4 x i32> * %ptr) { 1151 entry: 1152 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1153 %r = call <4 x i32> @llvm.mips.srai.w(<4 x i32> %a, i32 -3) 1154 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1155 ret void 1156 } 1157 1158 define void @neg_srari_w(<4 x i32> * %ptr) { 1159 entry: 1160 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1161 %r = call <4 x i32> @llvm.mips.srari.w(<4 x i32> %a, i32 -3) 1162 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1163 ret void 1164 } 1165 1166 define void @neg_srli_w(<4 x i32> * %ptr) { 1167 entry: 1168 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1169 %r = call <4 x i32> @llvm.mips.srli.w(<4 x i32> %a, i32 -3) 1170 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1171 ret void 1172 } 1173 1174 define void @neg_srlri_w(<4 x i32> * %ptr) { 1175 entry: 1176 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1177 %r = call <4 x i32> @llvm.mips.srlri.w(<4 x i32> %a, i32 -3) 1178 store <4 x i32> %r, <4 x i32> * %ptr, align 16 1179 ret void 1180 } 1181 1182 define void @neg_addvi_h(<8 x i16> * %ptr) { 1183 entry: 1184 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1185 %r = call <8 x i16> @llvm.mips.addvi.h(<8 x i16> %a, i32 -25) 1186 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1187 ret void 1188 } 1189 1190 define void @neg_bclri_h(<8 x i16> * %ptr) { 1191 entry: 1192 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1193 %r = call <8 x i16> @llvm.mips.bclri.h(<8 x i16> %a, i32 -8) 1194 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1195 ret void 1196 } 1197 1198 define void @neg_binsli_h(<8 x i16> * %ptr) { 1199 entry: 1200 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1201 %r = call <8 x i16> @llvm.mips.binsli.h(<8 x i16> %a, <8 x i16> %a, i32 -8) 1202 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1203 ret void 1204 } 1205 1206 define void @neg_binsri_h(<8 x i16> * %ptr) { 1207 entry: 1208 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1209 %r = call <8 x i16> @llvm.mips.binsri.h(<8 x i16> %a, <8 x i16> %a, i32 -15) 1210 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1211 ret void 1212 } 1213 1214 define void @neg_bnegi_h(<8 x i16> * %ptr) { 1215 entry: 1216 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1217 %r = call <8 x i16> @llvm.mips.bnegi.h(<8 x i16> %a, i32 -14) 1218 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1219 ret void 1220 } 1221 1222 define void @neg_bseti_h(<8 x i16> * %ptr) { 1223 entry: 1224 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1225 %r = call <8 x i16> @llvm.mips.bseti.h(<8 x i16> %a, i32 -15) 1226 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1227 ret void 1228 } 1229 1230 define void @neg_clei_s_h(<8 x i16> * %ptr) { 1231 entry: 1232 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1233 %r = call <8 x i16> @llvm.mips.clei.s.h(<8 x i16> %a, i32 -25) 1234 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1235 ret void 1236 } 1237 1238 define void @neg_clei_u_h(<8 x i16> * %ptr) { 1239 entry: 1240 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1241 %r = call <8 x i16> @llvm.mips.clei.u.h(<8 x i16> %a, i32 -25) 1242 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1243 ret void 1244 } 1245 1246 define void @neg_clti_s_h(<8 x i16> * %ptr) { 1247 entry: 1248 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1249 %r = call <8 x i16> @llvm.mips.clti.s.h(<8 x i16> %a, i32 -150) 1250 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1251 ret void 1252 } 1253 1254 define void @neg_clti_u_h(<8 x i16> * %ptr) { 1255 entry: 1256 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1257 %r = call <8 x i16> @llvm.mips.clti.u.h(<8 x i16> %a, i32 -25) 1258 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1259 ret void 1260 } 1261 1262 define void @neg_maxi_s_h(<8 x i16> * %ptr) { 1263 entry: 1264 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1265 %r = call <8 x i16> @llvm.mips.maxi.s.h(<8 x i16> %a, i32 -200) 1266 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1267 ret void 1268 } 1269 1270 define void @neg_maxi_u_h(<8 x i16> * %ptr) { 1271 entry: 1272 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1273 %r = call <8 x i16> @llvm.mips.maxi.u.h(<8 x i16> %a, i32 -200) 1274 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1275 ret void 1276 } 1277 1278 define void @neg_mini_s_h(<8 x i16> * %ptr) { 1279 entry: 1280 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1281 %r = call <8 x i16> @llvm.mips.mini.s.h(<8 x i16> %a, i32 -200) 1282 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1283 ret void 1284 } 1285 1286 define void @neg_mini_u_h(<8 x i16> * %ptr) { 1287 entry: 1288 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1289 %r = call <8 x i16> @llvm.mips.mini.u.h(<8 x i16> %a, i32 -2) 1290 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1291 ret void 1292 } 1293 1294 define void @neg_ldi_h(<8 x i16> * %ptr) { 1295 entry: 1296 %r = call <8 x i16> @llvm.mips.ldi.h(i32 -300) 1297 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1298 ret void 1299 } 1300 1301 define void @neg_sldi_h(<8 x i16> * %ptr) { 1302 entry: 1303 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1304 %r = call <8 x i16> @llvm.mips.sldi.h(<8 x i16> %a, <8 x i16> %a, i32 -3) 1305 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1306 ret void 1307 } 1308 1309 define void @neg_slli_h(<8 x i16> * %ptr) { 1310 entry: 1311 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1312 %r = call <8 x i16> @llvm.mips.slli.h(<8 x i16> %a, i32 -3) 1313 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1314 ret void 1315 } 1316 1317 define void @neg_splati_h(<8 x i16> * %ptr) { 1318 entry: 1319 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1320 %r = call <8 x i16> @llvm.mips.splati.h(<8 x i16> %a, i32 -3) 1321 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1322 ret void 1323 } 1324 1325 define void @neg_srai_h(<8 x i16> * %ptr) { 1326 entry: 1327 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1328 %r = call <8 x i16> @llvm.mips.srai.h(<8 x i16> %a, i32 -3) 1329 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1330 ret void 1331 } 1332 1333 define void @neg_srari_h(<8 x i16> * %ptr) { 1334 entry: 1335 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1336 %r = call <8 x i16> @llvm.mips.srari.h(<8 x i16> %a, i32 -3) 1337 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1338 ret void 1339 } 1340 1341 define void @neg_srli_h(<8 x i16> * %ptr) { 1342 entry: 1343 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1344 %r = call <8 x i16> @llvm.mips.srli.h(<8 x i16> %a, i32 -3) 1345 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1346 ret void 1347 } 1348 1349 define void @neg_srlri_h(<8 x i16> * %ptr) { 1350 entry: 1351 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1352 %r = call <8 x i16> @llvm.mips.srlri.h(<8 x i16> %a, i32 -3) 1353 store <8 x i16> %r, <8 x i16> * %ptr, align 16 1354 ret void 1355 } 1356 1357 define i32 @neg_copy_s_b(<16 x i8> * %ptr) { 1358 entry: 1359 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 1360 %r = call i32 @llvm.mips.copy.s.b(<16 x i8> %a, i32 -1) 1361 ret i32 %r 1362 } 1363 1364 define i32 @neg_copy_s_h(<8 x i16> * %ptr) { 1365 entry: 1366 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1367 %r = call i32 @llvm.mips.copy.s.h(<8 x i16> %a, i32 -1) 1368 ret i32 %r 1369 } 1370 1371 define i32 @neg_copy_s_w(<4 x i32> * %ptr) { 1372 entry: 1373 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1374 %r = call i32 @llvm.mips.copy.s.w(<4 x i32> %a, i32 -1) 1375 ret i32 %r 1376 } 1377 1378 define i32 @neg_copy_u_b(<16 x i8> * %ptr) { 1379 entry: 1380 %a = load <16 x i8>, <16 x i8> * %ptr, align 16 1381 %r = call i32 @llvm.mips.copy.u.b(<16 x i8> %a, i32 -1) 1382 ret i32 %r 1383 } 1384 1385 1386 define i32 @neg_copy_u_h(<8 x i16> * %ptr) { 1387 entry: 1388 %a = load <8 x i16>, <8 x i16> * %ptr, align 16 1389 %r = call i32 @llvm.mips.copy.u.h(<8 x i16> %a, i32 -1) 1390 ret i32 %r 1391 } 1392 1393 1394 define i32 @neg_copy_u_w(<4 x i32> * %ptr) { 1395 entry: 1396 %a = load <4 x i32>, <4 x i32> * %ptr, align 16 1397 %r = call i32 @llvm.mips.copy.u.w(<4 x i32> %a, i32 -1) 1398 ret i32 %r 1399 } 1400 1401 define i64 @neg_copy_s_d(<2 x i64> * %ptr) { 1402 entry: %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1403 %r = call i64 @llvm.mips.copy.s.d(<2 x i64> %a, i32 -1) 1404 ret i64 %r 1405 } 1406 1407 define i64 @neg_copy_u_d(<2 x i64> * %ptr) { 1408 entry: %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1409 %r = call i64 @llvm.mips.copy.u.d(<2 x i64> %a, i32 -1) 1410 ret i64 %r 1411 } 1412 1413 define void @neg_addvi_d(<2 x i64> * %ptr) { 1414 entry: 1415 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1416 %r = call <2 x i64> @llvm.mips.addvi.d(<2 x i64> %a, i32 -25) 1417 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1418 ret void 1419 } 1420 1421 define void @neg_bclri_d(<2 x i64> * %ptr) { 1422 entry: 1423 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1424 %r = call <2 x i64> @llvm.mips.bclri.d(<2 x i64> %a, i32 -25) 1425 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1426 ret void 1427 } 1428 1429 define void @neg_binsli_d(<2 x i64> * %ptr) { 1430 entry: 1431 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1432 %r = call <2 x i64> @llvm.mips.binsli.d(<2 x i64> %a, <2 x i64> %a, i32 -25) 1433 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1434 ret void 1435 } 1436 1437 define void @neg_binsri_d(<2 x i64> * %ptr) { 1438 entry: 1439 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1440 %r = call <2 x i64> @llvm.mips.binsri.d(<2 x i64> %a, <2 x i64> %a, i32 -25) 1441 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1442 ret void 1443 } 1444 1445 define void @neg_bnegi_d(<2 x i64> * %ptr) { 1446 entry: 1447 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1448 %r = call <2 x i64> @llvm.mips.bnegi.d(<2 x i64> %a, i32 -25) 1449 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1450 ret void 1451 } 1452 1453 define void @neg_bseti_d(<2 x i64> * %ptr) { 1454 entry: 1455 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1456 %r = call <2 x i64> @llvm.mips.bseti.d(<2 x i64> %a, i32 -25) 1457 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1458 ret void 1459 } 1460 1461 define void @neg_clei_s_d(<2 x i64> * %ptr) { 1462 entry: 1463 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1464 %r = call <2 x i64> @llvm.mips.clei.s.d(<2 x i64> %a, i32 -45) 1465 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1466 ret void 1467 } 1468 1469 define void @neg_clei_u_d(<2 x i64> * %ptr) { 1470 entry: 1471 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1472 %r = call <2 x i64> @llvm.mips.clei.u.d(<2 x i64> %a, i32 -25) 1473 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1474 ret void 1475 } 1476 1477 define void @neg_clti_s_d(<2 x i64> * %ptr) { 1478 entry: 1479 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1480 %r = call <2 x i64> @llvm.mips.clti.s.d(<2 x i64> %a, i32 -32) 1481 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1482 ret void 1483 } 1484 1485 define void @neg_clti_u_d(<2 x i64> * %ptr) { 1486 entry: 1487 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1488 %r = call <2 x i64> @llvm.mips.clti.u.d(<2 x i64> %a, i32 -25) 1489 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1490 ret void 1491 } 1492 1493 define void @neg_ldi_d(<2 x i64> * %ptr) { 1494 entry: 1495 %r = call <2 x i64> @llvm.mips.ldi.d(i32 -3) 1496 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1497 ret void 1498 } 1499 1500 define void @neg_maxi_s_d(<2 x i64> * %ptr) { 1501 entry: 1502 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1503 %r = call <2 x i64> @llvm.mips.maxi.s.d(<2 x i64> %a, i32 -202) 1504 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1505 ret void 1506 } 1507 1508 define void @neg_maxi_u_d(<2 x i64> * %ptr) { 1509 entry: 1510 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1511 %r = call <2 x i64> @llvm.mips.maxi.u.d(<2 x i64> %a, i32 -2) 1512 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1513 ret void 1514 } 1515 1516 define void @neg_mini_s_d(<2 x i64> * %ptr) { 1517 entry: 1518 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1519 %r = call <2 x i64> @llvm.mips.mini.s.d(<2 x i64> %a, i32 -202) 1520 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1521 ret void 1522 } 1523 1524 define void @neg_mini_u_d(<2 x i64> * %ptr) { 1525 entry: 1526 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1527 %r = call <2 x i64> @llvm.mips.mini.u.d(<2 x i64> %a, i32 -2) 1528 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1529 ret void 1530 } 1531 1532 define void @neg_sldi_d(<2 x i64> * %ptr) { 1533 entry: 1534 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1535 %r = call <2 x i64> @llvm.mips.sldi.d(<2 x i64> %a, <2 x i64> %a, i32 -1) 1536 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1537 ret void 1538 } 1539 1540 define void @neg_slli_d(<2 x i64> * %ptr) { 1541 entry: 1542 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1543 %r = call <2 x i64> @llvm.mips.slli.d(<2 x i64> %a, i32 -3) 1544 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1545 ret void 1546 } 1547 1548 define void @neg_srai_d(<2 x i64> * %ptr) { 1549 entry: 1550 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1551 %r = call <2 x i64> @llvm.mips.srai.d(<2 x i64> %a, i32 -3) 1552 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1553 ret void 1554 } 1555 1556 define void @neg_srari_d(<2 x i64> * %ptr) { 1557 entry: 1558 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1559 %r = call <2 x i64> @llvm.mips.srari.d(<2 x i64> %a, i32 -3) 1560 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1561 ret void 1562 } 1563 1564 define void @neg_srli_d(<2 x i64> * %ptr) { 1565 entry: 1566 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1567 %r = call <2 x i64> @llvm.mips.srli.d(<2 x i64> %a, i32 -3) 1568 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1569 ret void 1570 } 1571 1572 define void @neg_srlri_d(<2 x i64> * %ptr) { 1573 entry: 1574 %a = load <2 x i64>, <2 x i64> * %ptr, align 16 1575 %r = call <2 x i64> @llvm.mips.srlri.d(<2 x i64> %a, i32 -3) 1576 store <2 x i64> %r, <2 x i64> * %ptr, align 16 1577 ret void 1578 } 1579 1580 declare <8 x i16> @llvm.mips.ldi.h(i32) 1581 declare <8 x i16> @llvm.mips.addvi.h(<8 x i16>, i32) 1582 declare <8 x i16> @llvm.mips.bclri.h(<8 x i16>, i32) 1583 declare <8 x i16> @llvm.mips.binsli.h(<8 x i16>, <8 x i16>, i32) 1584 declare <8 x i16> @llvm.mips.binsri.h(<8 x i16>, <8 x i16>, i32) 1585 declare <8 x i16> @llvm.mips.bnegi.h(<8 x i16>, i32) 1586 declare <8 x i16> @llvm.mips.bseti.h(<8 x i16>, i32) 1587 declare <8 x i16> @llvm.mips.clei.s.h(<8 x i16>, i32) 1588 declare <8 x i16> @llvm.mips.clei.u.h(<8 x i16>, i32) 1589 declare <8 x i16> @llvm.mips.clti.s.h(<8 x i16>, i32) 1590 declare <8 x i16> @llvm.mips.clti.u.h(<8 x i16>, i32) 1591 declare <8 x i16> @llvm.mips.maxi.s.h(<8 x i16>, i32) 1592 declare <8 x i16> @llvm.mips.maxi.u.h(<8 x i16>, i32) 1593 declare <8 x i16> @llvm.mips.mini.s.h(<8 x i16>, i32) 1594 declare <8 x i16> @llvm.mips.mini.u.h(<8 x i16>, i32) 1595 declare <8 x i16> @llvm.mips.sldi.h(<8 x i16>, <8 x i16>, i32) 1596 declare <8 x i16> @llvm.mips.slli.h(<8 x i16>, i32) 1597 declare <8 x i16> @llvm.mips.splati.h(<8 x i16>, i32) 1598 declare <8 x i16> @llvm.mips.srai.h(<8 x i16>, i32) 1599 declare <8 x i16> @llvm.mips.srari.h(<8 x i16>, i32) 1600 declare <8 x i16> @llvm.mips.srli.h(<8 x i16>, i32) 1601 declare <8 x i16> @llvm.mips.srlri.h(<8 x i16>, i32) 1602 declare <4 x i32> @llvm.mips.addvi.w(<4 x i32>, i32) 1603 declare <4 x i32> @llvm.mips.bclri.w(<4 x i32>, i32) 1604 declare <4 x i32> @llvm.mips.binsli.w(<4 x i32>, <4 x i32>, i32) 1605 declare <4 x i32> @llvm.mips.binsri.w(<4 x i32>, <4 x i32>, i32) 1606 declare <4 x i32> @llvm.mips.bnegi.w(<4 x i32>, i32) 1607 declare <4 x i32> @llvm.mips.bseti.w(<4 x i32>, i32) 1608 declare <4 x i32> @llvm.mips.ldi.w(i32) 1609 declare <4 x i32> @llvm.mips.clei.s.w(<4 x i32>, i32) 1610 declare <4 x i32> @llvm.mips.clei.u.w(<4 x i32>, i32) 1611 declare <4 x i32> @llvm.mips.clti.s.w(<4 x i32>, i32) 1612 declare <4 x i32> @llvm.mips.clti.u.w(<4 x i32>, i32) 1613 declare <4 x i32> @llvm.mips.maxi.s.w(<4 x i32>, i32) 1614 declare <4 x i32> @llvm.mips.maxi.u.w(<4 x i32>, i32) 1615 declare <4 x i32> @llvm.mips.mini.s.w(<4 x i32>, i32) 1616 declare <4 x i32> @llvm.mips.mini.u.w(<4 x i32>, i32) 1617 declare <4 x i32> @llvm.mips.sldi.w(<4 x i32>, <4 x i32>, i32) 1618 declare <4 x i32> @llvm.mips.slli.w(<4 x i32>, i32) 1619 declare <4 x i32> @llvm.mips.splati.w(<4 x i32>, i32) 1620 declare <4 x i32> @llvm.mips.srai.w(<4 x i32>, i32) 1621 declare <4 x i32> @llvm.mips.srari.w(<4 x i32>, i32) 1622 declare <4 x i32> @llvm.mips.srli.w(<4 x i32>, i32) 1623 declare <4 x i32> @llvm.mips.srlri.w(<4 x i32>, i32) 1624 declare <2 x i64> @llvm.mips.ldi.d(i32) 1625 declare <2 x i64> @llvm.mips.addvi.d(<2 x i64>, i32) 1626 declare <2 x i64> @llvm.mips.bclri.d(<2 x i64>, i32) 1627 declare <2 x i64> @llvm.mips.binsli.d(<2 x i64>, <2 x i64>, i32) 1628 declare <2 x i64> @llvm.mips.binsri.d(<2 x i64>, <2 x i64>, i32) 1629 declare <2 x i64> @llvm.mips.bnegi.d(<2 x i64>, i32) 1630 declare <2 x i64> @llvm.mips.bseti.d(<2 x i64>, i32) 1631 declare <2 x i64> @llvm.mips.clei.s.d(<2 x i64>, i32) 1632 declare <2 x i64> @llvm.mips.clei.u.d(<2 x i64>, i32) 1633 declare <2 x i64> @llvm.mips.clti.s.d(<2 x i64>, i32) 1634 declare <2 x i64> @llvm.mips.clti.u.d(<2 x i64>, i32) 1635 declare <2 x i64> @llvm.mips.maxi.s.d(<2 x i64>, i32) 1636 declare <2 x i64> @llvm.mips.maxi.u.d(<2 x i64>, i32) 1637 declare <2 x i64> @llvm.mips.mini.s.d(<2 x i64>, i32) 1638 declare <2 x i64> @llvm.mips.mini.u.d(<2 x i64>, i32) 1639 declare <2 x i64> @llvm.mips.sldi.d(<2 x i64>, <2 x i64>, i32) 1640 declare <2 x i64> @llvm.mips.slli.d(<2 x i64>, i32) 1641 declare <2 x i64> @llvm.mips.splati.d(<2 x i64>, i32) 1642 declare <2 x i64> @llvm.mips.srai.d(<2 x i64>, i32) 1643 declare <2 x i64> @llvm.mips.srari.d(<2 x i64>, i32) 1644 declare <2 x i64> @llvm.mips.srli.d(<2 x i64>, i32) 1645 declare <2 x i64> @llvm.mips.srlri.d(<2 x i64>, i32) 1646 declare <16 x i8> @llvm.mips.ldi.b(i32) 1647 declare <16 x i8> @llvm.mips.addvi.b(<16 x i8>, i32) 1648 declare <16 x i8> @llvm.mips.andi.b(<16 x i8>, i32) 1649 declare <16 x i8> @llvm.mips.bclri.b(<16 x i8>, i32) 1650 declare <16 x i8> @llvm.mips.binsli.b(<16 x i8>, <16 x i8>, i32) 1651 declare <16 x i8> @llvm.mips.binsri.b(<16 x i8>, <16 x i8>, i32) 1652 declare <16 x i8> @llvm.mips.bmnzi.b(<16 x i8>, <16 x i8>, i32) 1653 declare <16 x i8> @llvm.mips.bnegi.b(<16 x i8>, i32) 1654 declare <16 x i8> @llvm.mips.bseli.b(<16 x i8>, <16 x i8>, i32) 1655 declare <16 x i8> @llvm.mips.bseti.b(<16 x i8>, i32) 1656 declare <16 x i8> @llvm.mips.clei.s.b(<16 x i8>, i32) 1657 declare <16 x i8> @llvm.mips.clei.u.b(<16 x i8>, i32) 1658 declare <16 x i8> @llvm.mips.clti.s.b(<16 x i8>, i32) 1659 declare <16 x i8> @llvm.mips.clti.u.b(<16 x i8>, i32) 1660 declare <16 x i8> @llvm.mips.maxi.s.b(<16 x i8>, i32) 1661 declare <16 x i8> @llvm.mips.maxi.u.b(<16 x i8>, i32) 1662 declare <16 x i8> @llvm.mips.mini.s.b(<16 x i8>, i32) 1663 declare <16 x i8> @llvm.mips.mini.u.b(<16 x i8>, i32) 1664 declare <16 x i8> @llvm.mips.nori.b(<16 x i8>, i32) 1665 declare <16 x i8> @llvm.mips.ori.b(<16 x i8>, i32) 1666 declare <16 x i8> @llvm.mips.sldi.b(<16 x i8>, <16 x i8>, i32) 1667 declare <16 x i8> @llvm.mips.slli.b(<16 x i8>, i32) 1668 declare <16 x i8> @llvm.mips.splati.b(<16 x i8>, i32) 1669 declare <16 x i8> @llvm.mips.srai.b(<16 x i8>, i32) 1670 declare <16 x i8> @llvm.mips.srari.b(<16 x i8>, i32) 1671 declare <16 x i8> @llvm.mips.srli.b(<16 x i8>, i32) 1672 declare <16 x i8> @llvm.mips.srlri.b(<16 x i8>, i32) 1673 declare i32 @llvm.mips.copy.s.h(<8 x i16>, i32) 1674 declare i32 @llvm.mips.copy.u.h(<8 x i16>, i32) 1675 declare i32 @llvm.mips.copy.s.w(<4 x i32>, i32) 1676 declare i32 @llvm.mips.copy.u.w(<4 x i32>, i32) 1677 declare i64 @llvm.mips.copy.s.d(<2 x i64>, i32) 1678 declare i64 @llvm.mips.copy.u.d(<2 x i64>, i32) 1679 declare i32 @llvm.mips.copy.s.b(<16 x i8>, i32) 1680 declare i32 @llvm.mips.copy.u.b(<16 x i8>, i32) 1681 declare <16 x i8> @llvm.mips.bmzi.b(<16 x i8>, <16 x i8>, i32) 1682