1# RUN: llvm-mc -arch=hexagon -mcpu=hexagonv67 -mhvx -filetype=obj %s | llvm-objdump --mcpu=hexagonv67 --mhvx -d - | FileCheck --implicit-check-not='{' %s 2 3 4 5// Warning: This file is auto generated by mktest.py. Do not edit! 6// Created at Wed Aug 22 11:17:37 2018 7// Created using: 8// Arch: v67, commit: 324e85a78e99759c3643d207f9d9b42bbfaf00f6 9 10// V6_extractw 11// Rd32=vextract(Vu32,Rs32) 12 r0=vextract(v0,r0) 13# CHECK: 9200c020 { r0 = vextract(v0,r0) } 14 15// V6_lvsplatb 16// Vd32.b=vsplat(Rt32) 17 v0.b=vsplat(r0) 18# CHECK-NEXT: 19c0c040 { v0.b = vsplat(r0) } 19 20// V6_lvsplath 21// Vd32.h=vsplat(Rt32) 22 v0.h=vsplat(r0) 23# CHECK-NEXT: 19c0c020 { v0.h = vsplat(r0) } 24 25// V6_lvsplatw 26// Vd32=vsplat(Rt32) 27 v0=vsplat(r0) 28# CHECK-NEXT: 19a0c020 { v0 = vsplat(r0) } 29 30// V6_pred_and 31// Qd4=and(Qs4,Qt4) 32 q0=and(q0,q0) 33# CHECK-NEXT: 1e03c000 { q0 = and(q0,q0) } 34 35// V6_pred_and_n 36// Qd4=and(Qs4,!Qt4) 37 q0=and(q0,!q0) 38# CHECK-NEXT: 1e03c014 { q0 = and(q0,!q0) } 39 40// V6_pred_not 41// Qd4=not(Qs4) 42 q0=not(q0) 43# CHECK-NEXT: 1e03c008 { q0 = not(q0) } 44 45// V6_pred_or 46// Qd4=or(Qs4,Qt4) 47 q0=or(q0,q0) 48# CHECK-NEXT: 1e03c004 { q0 = or(q0,q0) } 49 50// V6_pred_or_n 51// Qd4=or(Qs4,!Qt4) 52 q0=or(q0,!q0) 53# CHECK-NEXT: 1e03c010 { q0 = or(q0,!q0) } 54 55// V6_pred_scalar2 56// Qd4=vsetq(Rt32) 57 q0=vsetq(r0) 58# CHECK-NEXT: 19a0c044 { q0 = vsetq(r0) } 59 60// V6_pred_scalar2v2 61// Qd4=vsetq2(Rt32) 62 q0=vsetq2(r0) 63# CHECK-NEXT: 19a0c04c { q0 = vsetq2(r0) } 64 65// V6_pred_xor 66// Qd4=xor(Qs4,Qt4) 67 q0=xor(q0,q0) 68# CHECK-NEXT: 1e03c00c { q0 = xor(q0,q0) } 69 70// V6_shuffeqh 71// Qd4.b=vshuffe(Qs4.h,Qt4.h) 72 q0.b=vshuffe(q0.h,q0.h) 73# CHECK-NEXT: 1e03c018 { q0.b = vshuffe(q0.h,q0.h) } 74 75// V6_shuffeqw 76// Qd4.h=vshuffe(Qs4.w,Qt4.w) 77 q0.h=vshuffe(q0.w,q0.w) 78# CHECK-NEXT: 1e03c01c { q0.h = vshuffe(q0.w,q0.w) } 79 80// V6_vL32Ub_ai 81// Vd32=vmemu(Rt32+#s4) 82 v0=vmemu(r0+#0) 83# CHECK-NEXT: 2800c0e0 { v0 = vmemu(r0+#0) } 84 85// V6_vL32Ub_pi 86// Vd32=vmemu(Rx32++#s3) 87 v0=vmemu(r0++#0) 88# CHECK-NEXT: 2900c0e0 { v0 = vmemu(r0++#0) } 89 90// V6_vL32Ub_ppu 91// Vd32=vmemu(Rx32++Mu2) 92 v0=vmemu(r0++m0) 93# CHECK-NEXT: 2b00c0e0 { v0 = vmemu(r0++m0) } 94 95// V6_vL32b_ai 96// Vd32=vmem(Rt32+#s4) 97 v0=vmem(r0+#0) 98# CHECK-NEXT: 2800c000 { v0 = vmem(r0+#0) } 99 100// V6_vL32b_cur_ai 101// Vd32.cur=vmem(Rt32+#s4) 102 v0.cur=vmem(r0+#0) 103# CHECK-NEXT: 2800c020 { v0.cur = vmem(r0+#0) } 104 105// V6_vL32b_cur_npred_ai 106// if (!Pv4) Vd32.cur=vmem(Rt32+#s4) 107 if (!p0) v0.cur=vmem(r0+#0) 108# CHECK-NEXT: 2880c0a0 { if (!p0) v0.cur = vmem(r0+#0) } 109 110// V6_vL32b_cur_npred_pi 111// if (!Pv4) Vd32.cur=vmem(Rx32++#s3) 112 if (!p0) v0.cur=vmem(r0++#0) 113# CHECK-NEXT: 2980c0a0 { if (!p0) v0.cur = vmem(r0++#0) } 114 115// V6_vL32b_cur_npred_ppu 116// if (!Pv4) Vd32.cur=vmem(Rx32++Mu2) 117 if (!p0) v0.cur=vmem(r0++m0) 118# CHECK-NEXT: 2b80c0a0 { if (!p0) v0.cur = vmem(r0++m0) } 119 120// V6_vL32b_cur_pi 121// Vd32.cur=vmem(Rx32++#s3) 122 v0.cur=vmem(r0++#0) 123# CHECK-NEXT: 2900c020 { v0.cur = vmem(r0++#0) } 124 125// V6_vL32b_cur_ppu 126// Vd32.cur=vmem(Rx32++Mu2) 127 v0.cur=vmem(r0++m0) 128# CHECK-NEXT: 2b00c020 { v0.cur = vmem(r0++m0) } 129 130// V6_vL32b_cur_pred_ai 131// if (Pv4) Vd32.cur=vmem(Rt32+#s4) 132 if (p0) v0.cur=vmem(r0+#0) 133# CHECK-NEXT: 2880c080 { if (p0) v0.cur = vmem(r0+#0) } 134 135// V6_vL32b_cur_pred_pi 136// if (Pv4) Vd32.cur=vmem(Rx32++#s3) 137 if (p0) v0.cur=vmem(r0++#0) 138# CHECK-NEXT: 2980c080 { if (p0) v0.cur = vmem(r0++#0) } 139 140// V6_vL32b_cur_pred_ppu 141// if (Pv4) Vd32.cur=vmem(Rx32++Mu2) 142 if (p0) v0.cur=vmem(r0++m0) 143# CHECK-NEXT: 2b80c080 { if (p0) v0.cur = vmem(r0++m0) } 144 145// V6_vL32b_npred_ai 146// if (!Pv4) Vd32=vmem(Rt32+#s4) 147 if (!p0) v0=vmem(r0+#0) 148# CHECK-NEXT: 2880c060 { if (!p0) v0 = vmem(r0+#0) } 149 150// V6_vL32b_npred_pi 151// if (!Pv4) Vd32=vmem(Rx32++#s3) 152 if (!p0) v0=vmem(r0++#0) 153# CHECK-NEXT: 2980c060 { if (!p0) v0 = vmem(r0++#0) } 154 155// V6_vL32b_npred_ppu 156// if (!Pv4) Vd32=vmem(Rx32++Mu2) 157 if (!p0) v0=vmem(r0++m0) 158# CHECK-NEXT: 2b80c060 { if (!p0) v0 = vmem(r0++m0) } 159 160// V6_vL32b_nt_ai 161// Vd32=vmem(Rt32+#s4):nt 162 v0=vmem(r0+#0):nt 163# CHECK-NEXT: 2840c000 { v0 = vmem(r0+#0):nt } 164 165// V6_vL32b_nt_cur_ai 166// Vd32.cur=vmem(Rt32+#s4):nt 167 v0.cur=vmem(r0+#0):nt 168# CHECK-NEXT: 2840c020 { v0.cur = vmem(r0+#0):nt } 169 170// V6_vL32b_nt_cur_npred_ai 171// if (!Pv4) Vd32.cur=vmem(Rt32+#s4):nt 172 if (!p0) v0.cur=vmem(r0+#0):nt 173# CHECK-NEXT: 28c0c0a0 { if (!p0) v0.cur = vmem(r0+#0):nt } 174 175// V6_vL32b_nt_cur_npred_pi 176// if (!Pv4) Vd32.cur=vmem(Rx32++#s3):nt 177 if (!p0) v0.cur=vmem(r0++#0):nt 178# CHECK-NEXT: 29c0c0a0 { if (!p0) v0.cur = vmem(r0++#0):nt } 179 180// V6_vL32b_nt_cur_npred_ppu 181// if (!Pv4) Vd32.cur=vmem(Rx32++Mu2):nt 182 if (!p0) v0.cur=vmem(r0++m0):nt 183# CHECK-NEXT: 2bc0c0a0 { if (!p0) v0.cur = vmem(r0++m0):nt } 184 185// V6_vL32b_nt_cur_pi 186// Vd32.cur=vmem(Rx32++#s3):nt 187 v0.cur=vmem(r0++#0):nt 188# CHECK-NEXT: 2940c020 { v0.cur = vmem(r0++#0):nt } 189 190// V6_vL32b_nt_cur_ppu 191// Vd32.cur=vmem(Rx32++Mu2):nt 192 v0.cur=vmem(r0++m0):nt 193# CHECK-NEXT: 2b40c020 { v0.cur = vmem(r0++m0):nt } 194 195// V6_vL32b_nt_cur_pred_ai 196// if (Pv4) Vd32.cur=vmem(Rt32+#s4):nt 197 if (p0) v0.cur=vmem(r0+#0):nt 198# CHECK-NEXT: 28c0c080 { if (p0) v0.cur = vmem(r0+#0):nt } 199 200// V6_vL32b_nt_cur_pred_pi 201// if (Pv4) Vd32.cur=vmem(Rx32++#s3):nt 202 if (p0) v0.cur=vmem(r0++#0):nt 203# CHECK-NEXT: 29c0c080 { if (p0) v0.cur = vmem(r0++#0):nt } 204 205// V6_vL32b_nt_cur_pred_ppu 206// if (Pv4) Vd32.cur=vmem(Rx32++Mu2):nt 207 if (p0) v0.cur=vmem(r0++m0):nt 208# CHECK-NEXT: 2bc0c080 { if (p0) v0.cur = vmem(r0++m0):nt } 209 210// V6_vL32b_nt_npred_ai 211// if (!Pv4) Vd32=vmem(Rt32+#s4):nt 212 if (!p0) v0=vmem(r0+#0):nt 213# CHECK-NEXT: 28c0c060 { if (!p0) v0 = vmem(r0+#0):nt } 214 215// V6_vL32b_nt_npred_pi 216// if (!Pv4) Vd32=vmem(Rx32++#s3):nt 217 if (!p0) v0=vmem(r0++#0):nt 218# CHECK-NEXT: 29c0c060 { if (!p0) v0 = vmem(r0++#0):nt } 219 220// V6_vL32b_nt_npred_ppu 221// if (!Pv4) Vd32=vmem(Rx32++Mu2):nt 222 if (!p0) v0=vmem(r0++m0):nt 223# CHECK-NEXT: 2bc0c060 { if (!p0) v0 = vmem(r0++m0):nt } 224 225// V6_vL32b_nt_pi 226// Vd32=vmem(Rx32++#s3):nt 227 v0=vmem(r0++#0):nt 228# CHECK-NEXT: 2940c000 { v0 = vmem(r0++#0):nt } 229 230// V6_vL32b_nt_ppu 231// Vd32=vmem(Rx32++Mu2):nt 232 v0=vmem(r0++m0):nt 233# CHECK-NEXT: 2b40c000 { v0 = vmem(r0++m0):nt } 234 235// V6_vL32b_nt_pred_ai 236// if (Pv4) Vd32=vmem(Rt32+#s4):nt 237 if (p0) v0=vmem(r0+#0):nt 238# CHECK-NEXT: 28c0c040 { if (p0) v0 = vmem(r0+#0):nt } 239 240// V6_vL32b_nt_pred_pi 241// if (Pv4) Vd32=vmem(Rx32++#s3):nt 242 if (p0) v0=vmem(r0++#0):nt 243# CHECK-NEXT: 29c0c040 { if (p0) v0 = vmem(r0++#0):nt } 244 245// V6_vL32b_nt_pred_ppu 246// if (Pv4) Vd32=vmem(Rx32++Mu2):nt 247 if (p0) v0=vmem(r0++m0):nt 248# CHECK-NEXT: 2bc0c040 { if (p0) v0 = vmem(r0++m0):nt } 249 250// V6_vL32b_nt_tmp_ai 251// Vd32.tmp=vmem(Rt32+#s4):nt 252 v0.tmp=vmem(r0+#0):nt 253# CHECK-NEXT: 2840c040 { v0.tmp = vmem(r0+#0):nt } 254 255// V6_vL32b_nt_tmp_npred_ai 256// if (!Pv4) Vd32.tmp=vmem(Rt32+#s4):nt 257 if (!p0) v0.tmp=vmem(r0+#0):nt 258# CHECK-NEXT: 28c0c0e0 { if (!p0) v0.tmp = vmem(r0+#0):nt } 259 260// V6_vL32b_nt_tmp_npred_pi 261// if (!Pv4) Vd32.tmp=vmem(Rx32++#s3):nt 262 if (!p0) v0.tmp=vmem(r0++#0):nt 263# CHECK-NEXT: 29c0c0e0 { if (!p0) v0.tmp = vmem(r0++#0):nt } 264 265// V6_vL32b_nt_tmp_npred_ppu 266// if (!Pv4) Vd32.tmp=vmem(Rx32++Mu2):nt 267 if (!p0) v0.tmp=vmem(r0++m0):nt 268# CHECK-NEXT: 2bc0c0e0 { if (!p0) v0.tmp = vmem(r0++m0):nt } 269 270// V6_vL32b_nt_tmp_pi 271// Vd32.tmp=vmem(Rx32++#s3):nt 272 v0.tmp=vmem(r0++#0):nt 273# CHECK-NEXT: 2940c040 { v0.tmp = vmem(r0++#0):nt } 274 275// V6_vL32b_nt_tmp_ppu 276// Vd32.tmp=vmem(Rx32++Mu2):nt 277 v0.tmp=vmem(r0++m0):nt 278# CHECK-NEXT: 2b40c040 { v0.tmp = vmem(r0++m0):nt } 279 280// V6_vL32b_nt_tmp_pred_ai 281// if (Pv4) Vd32.tmp=vmem(Rt32+#s4):nt 282 if (p0) v0.tmp=vmem(r0+#0):nt 283# CHECK-NEXT: 28c0c0c0 { if (p0) v0.tmp = vmem(r0+#0):nt } 284 285// V6_vL32b_nt_tmp_pred_pi 286// if (Pv4) Vd32.tmp=vmem(Rx32++#s3):nt 287 if (p0) v0.tmp=vmem(r0++#0):nt 288# CHECK-NEXT: 29c0c0c0 { if (p0) v0.tmp = vmem(r0++#0):nt } 289 290// V6_vL32b_nt_tmp_pred_ppu 291// if (Pv4) Vd32.tmp=vmem(Rx32++Mu2):nt 292 if (p0) v0.tmp=vmem(r0++m0):nt 293# CHECK-NEXT: 2bc0c0c0 { if (p0) v0.tmp = vmem(r0++m0):nt } 294 295// V6_vL32b_pi 296// Vd32=vmem(Rx32++#s3) 297 v0=vmem(r0++#0) 298# CHECK-NEXT: 2900c000 { v0 = vmem(r0++#0) } 299 300// V6_vL32b_ppu 301// Vd32=vmem(Rx32++Mu2) 302 v0=vmem(r0++m0) 303# CHECK-NEXT: 2b00c000 { v0 = vmem(r0++m0) } 304 305// V6_vL32b_pred_ai 306// if (Pv4) Vd32=vmem(Rt32+#s4) 307 if (p0) v0=vmem(r0+#0) 308# CHECK-NEXT: 2880c040 { if (p0) v0 = vmem(r0+#0) } 309 310// V6_vL32b_pred_pi 311// if (Pv4) Vd32=vmem(Rx32++#s3) 312 if (p0) v0=vmem(r0++#0) 313# CHECK-NEXT: 2980c040 { if (p0) v0 = vmem(r0++#0) } 314 315// V6_vL32b_pred_ppu 316// if (Pv4) Vd32=vmem(Rx32++Mu2) 317 if (p0) v0=vmem(r0++m0) 318# CHECK-NEXT: 2b80c040 { if (p0) v0 = vmem(r0++m0) } 319 320// V6_vL32b_tmp_ai 321// Vd32.tmp=vmem(Rt32+#s4) 322 v0.tmp=vmem(r0+#0) 323# CHECK-NEXT: 2800c040 { v0.tmp = vmem(r0+#0) } 324 325// V6_vL32b_tmp_npred_ai 326// if (!Pv4) Vd32.tmp=vmem(Rt32+#s4) 327 if (!p0) v0.tmp=vmem(r0+#0) 328# CHECK-NEXT: 2880c0e0 { if (!p0) v0.tmp = vmem(r0+#0) } 329 330// V6_vL32b_tmp_npred_pi 331// if (!Pv4) Vd32.tmp=vmem(Rx32++#s3) 332 if (!p0) v0.tmp=vmem(r0++#0) 333# CHECK-NEXT: 2980c0e0 { if (!p0) v0.tmp = vmem(r0++#0) } 334 335// V6_vL32b_tmp_npred_ppu 336// if (!Pv4) Vd32.tmp=vmem(Rx32++Mu2) 337 if (!p0) v0.tmp=vmem(r0++m0) 338# CHECK-NEXT: 2b80c0e0 { if (!p0) v0.tmp = vmem(r0++m0) } 339 340// V6_vL32b_tmp_pi 341// Vd32.tmp=vmem(Rx32++#s3) 342 v0.tmp=vmem(r0++#0) 343# CHECK-NEXT: 2900c040 { v0.tmp = vmem(r0++#0) } 344 345// V6_vL32b_tmp_ppu 346// Vd32.tmp=vmem(Rx32++Mu2) 347 v0.tmp=vmem(r0++m0) 348# CHECK-NEXT: 2b00c040 { v0.tmp = vmem(r0++m0) } 349 350// V6_vL32b_tmp_pred_ai 351// if (Pv4) Vd32.tmp=vmem(Rt32+#s4) 352 if (p0) v0.tmp=vmem(r0+#0) 353# CHECK-NEXT: 2880c0c0 { if (p0) v0.tmp = vmem(r0+#0) } 354 355// V6_vL32b_tmp_pred_pi 356// if (Pv4) Vd32.tmp=vmem(Rx32++#s3) 357 if (p0) v0.tmp=vmem(r0++#0) 358# CHECK-NEXT: 2980c0c0 { if (p0) v0.tmp = vmem(r0++#0) } 359 360// V6_vL32b_tmp_pred_ppu 361// if (Pv4) Vd32.tmp=vmem(Rx32++Mu2) 362 if (p0) v0.tmp=vmem(r0++m0) 363# CHECK-NEXT: 2b80c0c0 { if (p0) v0.tmp = vmem(r0++m0) } 364 365// V6_vS32Ub_ai 366// vmemu(Rt32+#s4)=Vs32 367 vmemu(r0+#0)=v0 368# CHECK-NEXT: 2820c0e0 { vmemu(r0+#0) = v0 } 369 370// V6_vS32Ub_npred_ai 371// if (!Pv4) vmemu(Rt32+#s4)=Vs32 372 if (!p0) vmemu(r0+#0)=v0 373# CHECK-NEXT: 28a0c0e0 { if (!p0) vmemu(r0+#0) = v0 } 374 375// V6_vS32Ub_npred_pi 376// if (!Pv4) vmemu(Rx32++#s3)=Vs32 377 if (!p0) vmemu(r0++#0)=v0 378# CHECK-NEXT: 29a0c0e0 { if (!p0) vmemu(r0++#0) = v0 } 379 380// V6_vS32Ub_npred_ppu 381// if (!Pv4) vmemu(Rx32++Mu2)=Vs32 382 if (!p0) vmemu(r0++m0)=v0 383# CHECK-NEXT: 2ba0c0e0 { if (!p0) vmemu(r0++m0) = v0 } 384 385// V6_vS32Ub_pi 386// vmemu(Rx32++#s3)=Vs32 387 vmemu(r0++#0)=v0 388# CHECK-NEXT: 2920c0e0 { vmemu(r0++#0) = v0 } 389 390// V6_vS32Ub_ppu 391// vmemu(Rx32++Mu2)=Vs32 392 vmemu(r0++m0)=v0 393# CHECK-NEXT: 2b20c0e0 { vmemu(r0++m0) = v0 } 394 395// V6_vS32Ub_pred_ai 396// if (Pv4) vmemu(Rt32+#s4)=Vs32 397 if (p0) vmemu(r0+#0)=v0 398# CHECK-NEXT: 28a0c0c0 { if (p0) vmemu(r0+#0) = v0 } 399 400// V6_vS32Ub_pred_pi 401// if (Pv4) vmemu(Rx32++#s3)=Vs32 402 if (p0) vmemu(r0++#0)=v0 403# CHECK-NEXT: 29a0c0c0 { if (p0) vmemu(r0++#0) = v0 } 404 405// V6_vS32Ub_pred_ppu 406// if (Pv4) vmemu(Rx32++Mu2)=Vs32 407 if (p0) vmemu(r0++m0)=v0 408# CHECK-NEXT: 2ba0c0c0 { if (p0) vmemu(r0++m0) = v0 } 409 410// V6_vS32b_ai 411// vmem(Rt32+#s4)=Vs32 412 vmem(r0+#0)=v0 413# CHECK-NEXT: 2820c000 { vmem(r0+#0) = v0 } 414 415// V6_vS32b_new_ai 416// vmem(Rt32+#s4)=Os8.new 417{ 418 v0 = v1 419 vmem(r0+#0)=v0.new 420} 421# CHECK-NEXT: 1e0361e0 { v0 = v1 422# CHECK-NEXT: 2820c022 vmem(r0+#0) = v0.new } 423 424// V6_vS32b_new_npred_ai 425// if (!Pv4) vmem(Rt32+#s4)=Os8.new 426{ 427 v0 = v1 428 if (!p0) vmem(r0+#0)=v0.new 429} 430# CHECK-NEXT: 1e0361e0 { v0 = v1 431# CHECK-NEXT: 28a0c06a if (!p0) vmem(r0+#0) = v0.new } 432 433// V6_vS32b_new_npred_pi 434// if (!Pv4) vmem(Rx32++#s3)=Os8.new 435{ 436 v0 = v1 437 if (!p0) vmem(r0++#0)=v0.new 438} 439# CHECK-NEXT: 1e0361e0 { v0 = v1 440# CHECK-NEXT: 29a0c06a if (!p0) vmem(r0++#0) = v0.new } 441 442// V6_vS32b_new_npred_ppu 443// if (!Pv4) vmem(Rx32++Mu2)=Os8.new 444{ 445 v0 = v1 446 if (!p0) vmem(r0++m0)=v0.new 447} 448# CHECK-NEXT: 1e0361e0 { v0 = v1 449# CHECK-NEXT: 2ba0c06a if (!p0) vmem(r0++m0) = v0.new } 450 451// V6_vS32b_new_pi 452// vmem(Rx32++#s3)=Os8.new 453{ 454 v0 = v1 455 vmem(r0++#0)=v0.new 456} 457# CHECK-NEXT: 1e0361e0 { v0 = v1 458# CHECK-NEXT: 2920c022 vmem(r0++#0) = v0.new } 459 460// V6_vS32b_new_ppu 461// vmem(Rx32++Mu2)=Os8.new 462{ 463 v0 = v1 464 vmem(r0++m0)=v0.new 465} 466# CHECK-NEXT: 1e0361e0 { v0 = v1 467# CHECK-NEXT: 2b20c022 vmem(r0++m0) = v0.new } 468 469// V6_vS32b_new_pred_ai 470// if (Pv4) vmem(Rt32+#s4)=Os8.new 471{ 472 v0 = v1 473 if (p0) vmem(r0+#0)=v0.new 474} 475# CHECK-NEXT: 1e0361e0 { v0 = v1 476# CHECK-NEXT: 28a0c042 if (p0) vmem(r0+#0) = v0.new } 477 478// V6_vS32b_new_pred_pi 479// if (Pv4) vmem(Rx32++#s3)=Os8.new 480{ 481 v0 = v1 482 if (p0) vmem(r0++#0)=v0.new 483} 484# CHECK-NEXT: 1e0361e0 { v0 = v1 485# CHECK-NEXT: 29a0c042 if (p0) vmem(r0++#0) = v0.new } 486 487// V6_vS32b_new_pred_ppu 488// if (Pv4) vmem(Rx32++Mu2)=Os8.new 489{ 490 v0 = v1 491 if (p0) vmem(r0++m0)=v0.new 492} 493# CHECK-NEXT: 1e0361e0 { v0 = v1 494# CHECK-NEXT: 2ba0c042 if (p0) vmem(r0++m0) = v0.new } 495 496// V6_vS32b_npred_ai 497// if (!Pv4) vmem(Rt32+#s4)=Vs32 498 if (!p0) vmem(r0+#0)=v0 499# CHECK-NEXT: 28a0c020 { if (!p0) vmem(r0+#0) = v0 } 500 501// V6_vS32b_npred_pi 502// if (!Pv4) vmem(Rx32++#s3)=Vs32 503 if (!p0) vmem(r0++#0)=v0 504# CHECK-NEXT: 29a0c020 { if (!p0) vmem(r0++#0) = v0 } 505 506// V6_vS32b_npred_ppu 507// if (!Pv4) vmem(Rx32++Mu2)=Vs32 508 if (!p0) vmem(r0++m0)=v0 509# CHECK-NEXT: 2ba0c020 { if (!p0) vmem(r0++m0) = v0 } 510 511// V6_vS32b_nqpred_ai 512// if (!Qv4) vmem(Rt32+#s4)=Vs32 513 if (!q0) vmem(r0+#0)=v0 514# CHECK-NEXT: 2880c020 { if (!q0) vmem(r0+#0) = v0 } 515 516// V6_vS32b_nqpred_pi 517// if (!Qv4) vmem(Rx32++#s3)=Vs32 518 if (!q0) vmem(r0++#0)=v0 519# CHECK-NEXT: 2980c020 { if (!q0) vmem(r0++#0) = v0 } 520 521// V6_vS32b_nqpred_ppu 522// if (!Qv4) vmem(Rx32++Mu2)=Vs32 523 if (!q0) vmem(r0++m0)=v0 524# CHECK-NEXT: 2b80c020 { if (!q0) vmem(r0++m0) = v0 } 525 526// V6_vS32b_nt_ai 527// vmem(Rt32+#s4):nt=Vs32 528 vmem(r0+#0):nt=v0 529# CHECK-NEXT: 2860c000 { vmem(r0+#0):nt = v0 } 530 531// V6_vS32b_nt_new_ai 532// vmem(Rt32+#s4):nt=Os8.new 533{ 534 v0 = v1 535 vmem(r0+#0):nt=v0.new 536} 537# CHECK-NEXT: 1e0361e0 { v0 = v1 538# CHECK-NEXT: 2860c022 vmem(r0+#0):nt = v0.new } 539 540// V6_vS32b_nt_new_npred_ai 541// if (!Pv4) vmem(Rt32+#s4):nt=Os8.new 542{ 543 v0 = v1 544 if (!p0) vmem(r0+#0):nt=v0.new 545} 546# CHECK-NEXT: 1e0361e0 { v0 = v1 547# CHECK-NEXT: 28e0c07a if (!p0) vmem(r0+#0):nt = v0.new } 548 549// V6_vS32b_nt_new_npred_pi 550// if (!Pv4) vmem(Rx32++#s3):nt=Os8.new 551{ 552 v0 = v1 553 if (!p0) vmem(r0++#0):nt=v0.new 554} 555# CHECK-NEXT: 1e0361e0 { v0 = v1 556# CHECK-NEXT: 29e0c07a if (!p0) vmem(r0++#0):nt = v0.new } 557 558// V6_vS32b_nt_new_npred_ppu 559// if (!Pv4) vmem(Rx32++Mu2):nt=Os8.new 560{ 561 v0 = v1 562 if (!p0) vmem(r0++m0):nt=v0.new 563} 564# CHECK-NEXT: 1e0361e0 { v0 = v1 565# CHECK-NEXT: 2be0c07a if (!p0) vmem(r0++m0):nt = v0.new } 566 567// V6_vS32b_nt_new_pi 568// vmem(Rx32++#s3):nt=Os8.new 569{ 570 v0 = v1 571 vmem(r0++#0):nt=v0.new 572} 573# CHECK-NEXT: 1e0361e0 { v0 = v1 574# CHECK-NEXT: 2960c022 vmem(r0++#0):nt = v0.new } 575 576// V6_vS32b_nt_new_ppu 577// vmem(Rx32++Mu2):nt=Os8.new 578{ 579 v0 = v1 580 vmem(r0++m0):nt=v0.new 581} 582# CHECK-NEXT: 1e0361e0 { v0 = v1 583# CHECK-NEXT: 2b60c022 vmem(r0++m0):nt = v0.new } 584 585// V6_vS32b_nt_new_pred_ai 586// if (Pv4) vmem(Rt32+#s4):nt=Os8.new 587{ 588 v0 = v1 589 if (p0) vmem(r0+#0):nt=v0.new 590} 591# CHECK-NEXT: 1e0361e0 { v0 = v1 592# CHECK-NEXT: 28e0c052 if (p0) vmem(r0+#0):nt = v0.new } 593 594// V6_vS32b_nt_new_pred_pi 595// if (Pv4) vmem(Rx32++#s3):nt=Os8.new 596{ 597 v0 = v1 598 if (p0) vmem(r0++#0):nt=v0.new 599} 600# CHECK-NEXT: 1e0361e0 { v0 = v1 601# CHECK-NEXT: 29e0c052 if (p0) vmem(r0++#0):nt = v0.new } 602 603// V6_vS32b_nt_new_pred_ppu 604// if (Pv4) vmem(Rx32++Mu2):nt=Os8.new 605{ 606 v0 = v1 607 if (p0) vmem(r0++m0):nt=v0.new 608} 609# CHECK-NEXT: 1e0361e0 { v0 = v1 610# CHECK-NEXT: 2be0c052 if (p0) vmem(r0++m0):nt = v0.new } 611 612// V6_vS32b_nt_npred_ai 613// if (!Pv4) vmem(Rt32+#s4):nt=Vs32 614 if (!p0) vmem(r0+#0):nt=v0 615# CHECK-NEXT: 28e0c020 { if (!p0) vmem(r0+#0):nt = v0 } 616 617// V6_vS32b_nt_npred_pi 618// if (!Pv4) vmem(Rx32++#s3):nt=Vs32 619 if (!p0) vmem(r0++#0):nt=v0 620# CHECK-NEXT: 29e0c020 { if (!p0) vmem(r0++#0):nt = v0 } 621 622// V6_vS32b_nt_npred_ppu 623// if (!Pv4) vmem(Rx32++Mu2):nt=Vs32 624 if (!p0) vmem(r0++m0):nt=v0 625# CHECK-NEXT: 2be0c020 { if (!p0) vmem(r0++m0):nt = v0 } 626 627// V6_vS32b_nt_nqpred_ai 628// if (!Qv4) vmem(Rt32+#s4):nt=Vs32 629 if (!q0) vmem(r0+#0):nt=v0 630# CHECK-NEXT: 28c0c020 { if (!q0) vmem(r0+#0):nt = v0 } 631 632// V6_vS32b_nt_nqpred_pi 633// if (!Qv4) vmem(Rx32++#s3):nt=Vs32 634 if (!q0) vmem(r0++#0):nt=v0 635# CHECK-NEXT: 29c0c020 { if (!q0) vmem(r0++#0):nt = v0 } 636 637// V6_vS32b_nt_nqpred_ppu 638// if (!Qv4) vmem(Rx32++Mu2):nt=Vs32 639 if (!q0) vmem(r0++m0):nt=v0 640# CHECK-NEXT: 2bc0c020 { if (!q0) vmem(r0++m0):nt = v0 } 641 642// V6_vS32b_nt_pi 643// vmem(Rx32++#s3):nt=Vs32 644 vmem(r0++#0):nt=v0 645# CHECK-NEXT: 2960c000 { vmem(r0++#0):nt = v0 } 646 647// V6_vS32b_nt_ppu 648// vmem(Rx32++Mu2):nt=Vs32 649 vmem(r0++m0):nt=v0 650# CHECK-NEXT: 2b60c000 { vmem(r0++m0):nt = v0 } 651 652// V6_vS32b_nt_pred_ai 653// if (Pv4) vmem(Rt32+#s4):nt=Vs32 654 if (p0) vmem(r0+#0):nt=v0 655# CHECK-NEXT: 28e0c000 { if (p0) vmem(r0+#0):nt = v0 } 656 657// V6_vS32b_nt_pred_pi 658// if (Pv4) vmem(Rx32++#s3):nt=Vs32 659 if (p0) vmem(r0++#0):nt=v0 660# CHECK-NEXT: 29e0c000 { if (p0) vmem(r0++#0):nt = v0 } 661 662// V6_vS32b_nt_pred_ppu 663// if (Pv4) vmem(Rx32++Mu2):nt=Vs32 664 if (p0) vmem(r0++m0):nt=v0 665# CHECK-NEXT: 2be0c000 { if (p0) vmem(r0++m0):nt = v0 } 666 667// V6_vS32b_nt_qpred_ai 668// if (Qv4) vmem(Rt32+#s4):nt=Vs32 669 if (q0) vmem(r0+#0):nt=v0 670# CHECK-NEXT: 28c0c000 { if (q0) vmem(r0+#0):nt = v0 } 671 672// V6_vS32b_nt_qpred_pi 673// if (Qv4) vmem(Rx32++#s3):nt=Vs32 674 if (q0) vmem(r0++#0):nt=v0 675# CHECK-NEXT: 29c0c000 { if (q0) vmem(r0++#0):nt = v0 } 676 677// V6_vS32b_nt_qpred_ppu 678// if (Qv4) vmem(Rx32++Mu2):nt=Vs32 679 if (q0) vmem(r0++m0):nt=v0 680# CHECK-NEXT: 2bc0c000 { if (q0) vmem(r0++m0):nt = v0 } 681 682// V6_vS32b_pi 683// vmem(Rx32++#s3)=Vs32 684 vmem(r0++#0)=v0 685# CHECK-NEXT: 2920c000 { vmem(r0++#0) = v0 } 686 687// V6_vS32b_ppu 688// vmem(Rx32++Mu2)=Vs32 689 vmem(r0++m0)=v0 690# CHECK-NEXT: 2b20c000 { vmem(r0++m0) = v0 } 691 692// V6_vS32b_pred_ai 693// if (Pv4) vmem(Rt32+#s4)=Vs32 694 if (p0) vmem(r0+#0)=v0 695# CHECK-NEXT: 28a0c000 { if (p0) vmem(r0+#0) = v0 } 696 697// V6_vS32b_pred_pi 698// if (Pv4) vmem(Rx32++#s3)=Vs32 699 if (p0) vmem(r0++#0)=v0 700# CHECK-NEXT: 29a0c000 { if (p0) vmem(r0++#0) = v0 } 701 702// V6_vS32b_pred_ppu 703// if (Pv4) vmem(Rx32++Mu2)=Vs32 704 if (p0) vmem(r0++m0)=v0 705# CHECK-NEXT: 2ba0c000 { if (p0) vmem(r0++m0) = v0 } 706 707// V6_vS32b_qpred_ai 708// if (Qv4) vmem(Rt32+#s4)=Vs32 709 if (q0) vmem(r0+#0)=v0 710# CHECK-NEXT: 2880c000 { if (q0) vmem(r0+#0) = v0 } 711 712// V6_vS32b_qpred_pi 713// if (Qv4) vmem(Rx32++#s3)=Vs32 714 if (q0) vmem(r0++#0)=v0 715# CHECK-NEXT: 2980c000 { if (q0) vmem(r0++#0) = v0 } 716 717// V6_vS32b_qpred_ppu 718// if (Qv4) vmem(Rx32++Mu2)=Vs32 719 if (q0) vmem(r0++m0)=v0 720# CHECK-NEXT: 2b80c000 { if (q0) vmem(r0++m0) = v0 } 721 722// V6_vS32b_srls_ai 723// vmem(Rt32+#s4):scatter_release 724 vmem(r0+#0):scatter_release 725# CHECK-NEXT: 2820c028 { vmem(r0+#0):scatter_release } 726 727// V6_vS32b_srls_pi 728// vmem(Rx32++#s3):scatter_release 729 vmem(r0++#0):scatter_release 730# CHECK-NEXT: 2920c028 { vmem(r0++#0):scatter_release } 731 732// V6_vS32b_srls_ppu 733// vmem(Rx32++Mu2):scatter_release 734 vmem(r0++m0):scatter_release 735# CHECK-NEXT: 2b20c028 { vmem(r0++m0):scatter_release } 736 737// V6_vabsb 738// Vd32.b=vabs(Vu32.b) 739 v0.b=vabs(v0.b) 740# CHECK-NEXT: 1e01c080 { v0.b = vabs(v0.b) } 741 742// V6_vabsb_sat 743// Vd32.b=vabs(Vu32.b):sat 744 v0.b=vabs(v0.b):sat 745# CHECK-NEXT: 1e01c0a0 { v0.b = vabs(v0.b):sat } 746 747// V6_vabsdiffh 748// Vd32.uh=vabsdiff(Vu32.h,Vv32.h) 749 v0.uh=vabsdiff(v0.h,v0.h) 750# CHECK-NEXT: 1cc0c020 { v0.uh = vabsdiff(v0.h,v0.h) } 751 752// V6_vabsdiffub 753// Vd32.ub=vabsdiff(Vu32.ub,Vv32.ub) 754 v0.ub=vabsdiff(v0.ub,v0.ub) 755# CHECK-NEXT: 1cc0c000 { v0.ub = vabsdiff(v0.ub,v0.ub) } 756 757// V6_vabsdiffuh 758// Vd32.uh=vabsdiff(Vu32.uh,Vv32.uh) 759 v0.uh=vabsdiff(v0.uh,v0.uh) 760# CHECK-NEXT: 1cc0c040 { v0.uh = vabsdiff(v0.uh,v0.uh) } 761 762// V6_vabsdiffw 763// Vd32.uw=vabsdiff(Vu32.w,Vv32.w) 764 v0.uw=vabsdiff(v0.w,v0.w) 765# CHECK-NEXT: 1cc0c060 { v0.uw = vabsdiff(v0.w,v0.w) } 766 767// V6_vabsh 768// Vd32.h=vabs(Vu32.h) 769 v0.h=vabs(v0.h) 770# CHECK-NEXT: 1e00c000 { v0.h = vabs(v0.h) } 771 772// V6_vabsh_sat 773// Vd32.h=vabs(Vu32.h):sat 774 v0.h=vabs(v0.h):sat 775# CHECK-NEXT: 1e00c020 { v0.h = vabs(v0.h):sat } 776 777// V6_vabsw 778// Vd32.w=vabs(Vu32.w) 779 v0.w=vabs(v0.w) 780# CHECK-NEXT: 1e00c040 { v0.w = vabs(v0.w) } 781 782// V6_vabsw_sat 783// Vd32.w=vabs(Vu32.w):sat 784 v0.w=vabs(v0.w):sat 785# CHECK-NEXT: 1e00c060 { v0.w = vabs(v0.w):sat } 786 787// V6_vaddb 788// Vd32.b=vadd(Vu32.b,Vv32.b) 789 v0.b=vadd(v0.b,v0.b) 790# CHECK-NEXT: 1fa0c0c0 { v0.b = vadd(v0.b,v0.b) } 791 792// V6_vaddb_dv 793// Vdd32.b=vadd(Vuu32.b,Vvv32.b) 794 v1:0.b=vadd(v1:0.b,v1:0.b) 795# CHECK-NEXT: 1c60c080 { v1:0.b = vadd(v1:0.b,v1:0.b) } 796 797// V6_vaddbnq 798// if (!Qv4) Vx32.b+=Vu32.b 799 if (!q0) v0.b+=v0.b 800# CHECK-NEXT: 1e01e060 { if (!q0) v0.b += v0.b } 801 802// V6_vaddbq 803// if (Qv4) Vx32.b+=Vu32.b 804 if (q0) v0.b+=v0.b 805# CHECK-NEXT: 1e01e000 { if (q0) v0.b += v0.b } 806 807// V6_vaddbsat 808// Vd32.b=vadd(Vu32.b,Vv32.b):sat 809 v0.b=vadd(v0.b,v0.b):sat 810# CHECK-NEXT: 1f00c000 { v0.b = vadd(v0.b,v0.b):sat } 811 812// V6_vaddbsat_dv 813// Vdd32.b=vadd(Vuu32.b,Vvv32.b):sat 814 v1:0.b=vadd(v1:0.b,v1:0.b):sat 815# CHECK-NEXT: 1ea0c000 { v1:0.b = vadd(v1:0.b,v1:0.b):sat } 816 817// V6_vaddcarry 818// Vd32.w=vadd(Vu32.w,Vv32.w,Qx4):carry 819 v0.w=vadd(v0.w,v0.w,q0):carry 820# CHECK-NEXT: 1ca0e000 { v0.w = vadd(v0.w,v0.w,q0):carry } 821 822// V6_vaddcarryo 823// Vd32.w,Qe4=vadd(Vu32.w,Vv32.w):carry 824 v0.w,q0=vadd(v0.w,v0.w):carry 825# CHECK-NEXT: 1da0e000 { v0.w,q0 = vadd(v0.w,v0.w):carry } 826 827// V6_vaddcarrysat 828// Vd32.w=vadd(Vu32.w,Vv32.w,Qs4):carry:sat 829 v0.w=vadd(v0.w,v0.w,q0):carry:sat 830# CHECK-NEXT: 1d80e000 { v0.w = vadd(v0.w,v0.w,q0):carry:sat } 831 832// V6_vaddclbh 833// Vd32.h=vadd(vclb(Vu32.h),Vv32.h) 834 v0.h=vadd(vclb(v0.h),v0.h) 835# CHECK-NEXT: 1f00e000 { v0.h = vadd(vclb(v0.h),v0.h) } 836 837// V6_vaddclbw 838// Vd32.w=vadd(vclb(Vu32.w),Vv32.w) 839 v0.w=vadd(vclb(v0.w),v0.w) 840# CHECK-NEXT: 1f00e020 { v0.w = vadd(vclb(v0.w),v0.w) } 841 842// V6_vaddh 843// Vd32.h=vadd(Vu32.h,Vv32.h) 844 v0.h=vadd(v0.h,v0.h) 845# CHECK-NEXT: 1fa0c0e0 { v0.h = vadd(v0.h,v0.h) } 846 847// V6_vaddh_dv 848// Vdd32.h=vadd(Vuu32.h,Vvv32.h) 849 v1:0.h=vadd(v1:0.h,v1:0.h) 850# CHECK-NEXT: 1c60c0a0 { v1:0.h = vadd(v1:0.h,v1:0.h) } 851 852// V6_vaddhnq 853// if (!Qv4) Vx32.h+=Vu32.h 854 if (!q0) v0.h+=v0.h 855# CHECK-NEXT: 1e01e080 { if (!q0) v0.h += v0.h } 856 857// V6_vaddhq 858// if (Qv4) Vx32.h+=Vu32.h 859 if (q0) v0.h+=v0.h 860# CHECK-NEXT: 1e01e020 { if (q0) v0.h += v0.h } 861 862// V6_vaddhsat 863// Vd32.h=vadd(Vu32.h,Vv32.h):sat 864 v0.h=vadd(v0.h,v0.h):sat 865# CHECK-NEXT: 1c40c060 { v0.h = vadd(v0.h,v0.h):sat } 866 867// V6_vaddhsat_dv 868// Vdd32.h=vadd(Vuu32.h,Vvv32.h):sat 869 v1:0.h=vadd(v1:0.h,v1:0.h):sat 870# CHECK-NEXT: 1c80c020 { v1:0.h = vadd(v1:0.h,v1:0.h):sat } 871 872// V6_vaddhw 873// Vdd32.w=vadd(Vu32.h,Vv32.h) 874 v1:0.w=vadd(v0.h,v0.h) 875# CHECK-NEXT: 1ca0c080 { v1:0.w = vadd(v0.h,v0.h) } 876 877// V6_vaddhw_acc 878// Vxx32.w+=vadd(Vu32.h,Vv32.h) 879 v1:0.w+=vadd(v0.h,v0.h) 880# CHECK-NEXT: 1c20e040 { v1:0.w += vadd(v0.h,v0.h) } 881 882// V6_vaddubh 883// Vdd32.h=vadd(Vu32.ub,Vv32.ub) 884 v1:0.h=vadd(v0.ub,v0.ub) 885# CHECK-NEXT: 1ca0c040 { v1:0.h = vadd(v0.ub,v0.ub) } 886 887// V6_vaddubh_acc 888// Vxx32.h+=vadd(Vu32.ub,Vv32.ub) 889 v1:0.h+=vadd(v0.ub,v0.ub) 890# CHECK-NEXT: 1c40e0a0 { v1:0.h += vadd(v0.ub,v0.ub) } 891 892// V6_vaddubsat 893// Vd32.ub=vadd(Vu32.ub,Vv32.ub):sat 894 v0.ub=vadd(v0.ub,v0.ub):sat 895# CHECK-NEXT: 1c40c020 { v0.ub = vadd(v0.ub,v0.ub):sat } 896 897// V6_vaddubsat_dv 898// Vdd32.ub=vadd(Vuu32.ub,Vvv32.ub):sat 899 v1:0.ub=vadd(v1:0.ub,v1:0.ub):sat 900# CHECK-NEXT: 1c60c0e0 { v1:0.ub = vadd(v1:0.ub,v1:0.ub):sat } 901 902// V6_vaddububb_sat 903// Vd32.ub=vadd(Vu32.ub,Vv32.b):sat 904 v0.ub=vadd(v0.ub,v0.b):sat 905# CHECK-NEXT: 1ea0c080 { v0.ub = vadd(v0.ub,v0.b):sat } 906 907// V6_vadduhsat 908// Vd32.uh=vadd(Vu32.uh,Vv32.uh):sat 909 v0.uh=vadd(v0.uh,v0.uh):sat 910# CHECK-NEXT: 1c40c040 { v0.uh = vadd(v0.uh,v0.uh):sat } 911 912// V6_vadduhsat_dv 913// Vdd32.uh=vadd(Vuu32.uh,Vvv32.uh):sat 914 v1:0.uh=vadd(v1:0.uh,v1:0.uh):sat 915# CHECK-NEXT: 1c80c000 { v1:0.uh = vadd(v1:0.uh,v1:0.uh):sat } 916 917// V6_vadduhw 918// Vdd32.w=vadd(Vu32.uh,Vv32.uh) 919 v1:0.w=vadd(v0.uh,v0.uh) 920# CHECK-NEXT: 1ca0c060 { v1:0.w = vadd(v0.uh,v0.uh) } 921 922// V6_vadduhw_acc 923// Vxx32.w+=vadd(Vu32.uh,Vv32.uh) 924 v1:0.w+=vadd(v0.uh,v0.uh) 925# CHECK-NEXT: 1c40e080 { v1:0.w += vadd(v0.uh,v0.uh) } 926 927// V6_vadduwsat 928// Vd32.uw=vadd(Vu32.uw,Vv32.uw):sat 929 v0.uw=vadd(v0.uw,v0.uw):sat 930# CHECK-NEXT: 1f60c020 { v0.uw = vadd(v0.uw,v0.uw):sat } 931 932// V6_vadduwsat_dv 933// Vdd32.uw=vadd(Vuu32.uw,Vvv32.uw):sat 934 v1:0.uw=vadd(v1:0.uw,v1:0.uw):sat 935# CHECK-NEXT: 1ea0c040 { v1:0.uw = vadd(v1:0.uw,v1:0.uw):sat } 936 937// V6_vaddw 938// Vd32.w=vadd(Vu32.w,Vv32.w) 939 v0.w=vadd(v0.w,v0.w) 940# CHECK-NEXT: 1c40c000 { v0.w = vadd(v0.w,v0.w) } 941 942// V6_vaddw_dv 943// Vdd32.w=vadd(Vuu32.w,Vvv32.w) 944 v1:0.w=vadd(v1:0.w,v1:0.w) 945# CHECK-NEXT: 1c60c0c0 { v1:0.w = vadd(v1:0.w,v1:0.w) } 946 947// V6_vaddwnq 948// if (!Qv4) Vx32.w+=Vu32.w 949 if (!q0) v0.w+=v0.w 950# CHECK-NEXT: 1e01e0a0 { if (!q0) v0.w += v0.w } 951 952// V6_vaddwq 953// if (Qv4) Vx32.w+=Vu32.w 954 if (q0) v0.w+=v0.w 955# CHECK-NEXT: 1e01e040 { if (q0) v0.w += v0.w } 956 957// V6_vaddwsat 958// Vd32.w=vadd(Vu32.w,Vv32.w):sat 959 v0.w=vadd(v0.w,v0.w):sat 960# CHECK-NEXT: 1c40c080 { v0.w = vadd(v0.w,v0.w):sat } 961 962// V6_vaddwsat_dv 963// Vdd32.w=vadd(Vuu32.w,Vvv32.w):sat 964 v1:0.w=vadd(v1:0.w,v1:0.w):sat 965# CHECK-NEXT: 1c80c040 { v1:0.w = vadd(v1:0.w,v1:0.w):sat } 966 967// V6_valignb 968// Vd32=valign(Vu32,Vv32,Rt8) 969 v0=valign(v0,v0,r0) 970# CHECK-NEXT: 1b00c000 { v0 = valign(v0,v0,r0) } 971 972// V6_valignbi 973// Vd32=valign(Vu32,Vv32,#u3) 974 v0=valign(v0,v0,#0) 975# CHECK-NEXT: 1e20e000 { v0 = valign(v0,v0,#0) } 976 977// V6_vand 978// Vd32=vand(Vu32,Vv32) 979 v0=vand(v0,v0) 980# CHECK-NEXT: 1c20c0a0 { v0 = vand(v0,v0) } 981 982// V6_vandnqrt 983// Vd32=vand(!Qu4,Rt32) 984 v0=vand(!q0,r0) 985# CHECK-NEXT: 19a0c4a0 { v0 = vand(!q0,r0) } 986 987// V6_vandnqrt_acc 988// Vx32|=vand(!Qu4,Rt32) 989 v0|=vand(!q0,r0) 990# CHECK-NEXT: 1960e460 { v0 |= vand(!q0,r0) } 991 992// V6_vandqrt 993// Vd32=vand(Qu4,Rt32) 994 v0=vand(q0,r0) 995# CHECK-NEXT: 19a0c0a0 { v0 = vand(q0,r0) } 996 997// V6_vandqrt_acc 998// Vx32|=vand(Qu4,Rt32) 999 v0|=vand(q0,r0) 1000# CHECK-NEXT: 1960e060 { v0 |= vand(q0,r0) } 1001 1002// V6_vandvnqv 1003// Vd32=vand(!Qv4,Vu32) 1004 v0=vand(!q0,v0) 1005# CHECK-NEXT: 1e03e020 { v0 = vand(!q0,v0) } 1006 1007// V6_vandvqv 1008// Vd32=vand(Qv4,Vu32) 1009 v0=vand(q0,v0) 1010# CHECK-NEXT: 1e03e000 { v0 = vand(q0,v0) } 1011 1012// V6_vandvrt 1013// Qd4=vand(Vu32,Rt32) 1014 q0=vand(v0,r0) 1015# CHECK-NEXT: 19a0c048 { q0 = vand(v0,r0) } 1016 1017// V6_vandvrt_acc 1018// Qx4|=vand(Vu32,Rt32) 1019 q0|=vand(v0,r0) 1020# CHECK-NEXT: 1960e080 { q0 |= vand(v0,r0) } 1021 1022// V6_vaslh 1023// Vd32.h=vasl(Vu32.h,Rt32) 1024 v0.h=vasl(v0.h,r0) 1025# CHECK-NEXT: 1980c000 { v0.h = vasl(v0.h,r0) } 1026 1027// V6_vaslh_acc 1028// Vx32.h+=vasl(Vu32.h,Rt32) 1029 v0.h+=vasl(v0.h,r0) 1030# CHECK-NEXT: 19a0e0a0 { v0.h += vasl(v0.h,r0) } 1031 1032// V6_vaslhv 1033// Vd32.h=vasl(Vu32.h,Vv32.h) 1034 v0.h=vasl(v0.h,v0.h) 1035# CHECK-NEXT: 1fa0c0a0 { v0.h = vasl(v0.h,v0.h) } 1036 1037// V6_vaslw 1038// Vd32.w=vasl(Vu32.w,Rt32) 1039 v0.w=vasl(v0.w,r0) 1040# CHECK-NEXT: 1960c0e0 { v0.w = vasl(v0.w,r0) } 1041 1042// V6_vaslw_acc 1043// Vx32.w+=vasl(Vu32.w,Rt32) 1044 v0.w+=vasl(v0.w,r0) 1045# CHECK-NEXT: 1960e040 { v0.w += vasl(v0.w,r0) } 1046 1047// V6_vaslwv 1048// Vd32.w=vasl(Vu32.w,Vv32.w) 1049 v0.w=vasl(v0.w,v0.w) 1050# CHECK-NEXT: 1fa0c080 { v0.w = vasl(v0.w,v0.w) } 1051 1052// V6_vasr_into 1053// Vxx32.w=vasrinto(Vu32.w,Vv32.w) 1054 v1:0.w=vasrinto(v0.w,v0.w) 1055# CHECK-NEXT: 1aa0e0e0 { v1:0.w = vasrinto(v0.w,v0.w) } 1056 1057// V6_vasrh 1058// Vd32.h=vasr(Vu32.h,Rt32) 1059 v0.h=vasr(v0.h,r0) 1060# CHECK-NEXT: 1960c0c0 { v0.h = vasr(v0.h,r0) } 1061 1062// V6_vasrh_acc 1063// Vx32.h+=vasr(Vu32.h,Rt32) 1064 v0.h+=vasr(v0.h,r0) 1065# CHECK-NEXT: 1980e0e0 { v0.h += vasr(v0.h,r0) } 1066 1067// V6_vasrhbrndsat 1068// Vd32.b=vasr(Vu32.h,Vv32.h,Rt8):rnd:sat 1069 v0.b=vasr(v0.h,v0.h,r0):rnd:sat 1070# CHECK-NEXT: 1b00e000 { v0.b = vasr(v0.h,v0.h,r0):rnd:sat } 1071 1072// V6_vasrhbsat 1073// Vd32.b=vasr(Vu32.h,Vv32.h,Rt8):sat 1074 v0.b=vasr(v0.h,v0.h,r0):sat 1075# CHECK-NEXT: 1800c000 { v0.b = vasr(v0.h,v0.h,r0):sat } 1076 1077// V6_vasrhubrndsat 1078// Vd32.ub=vasr(Vu32.h,Vv32.h,Rt8):rnd:sat 1079 v0.ub=vasr(v0.h,v0.h,r0):rnd:sat 1080# CHECK-NEXT: 1b00c0e0 { v0.ub = vasr(v0.h,v0.h,r0):rnd:sat } 1081 1082// V6_vasrhubsat 1083// Vd32.ub=vasr(Vu32.h,Vv32.h,Rt8):sat 1084 v0.ub=vasr(v0.h,v0.h,r0):sat 1085# CHECK-NEXT: 1b00c0c0 { v0.ub = vasr(v0.h,v0.h,r0):sat } 1086 1087// V6_vasrhv 1088// Vd32.h=vasr(Vu32.h,Vv32.h) 1089 v0.h=vasr(v0.h,v0.h) 1090# CHECK-NEXT: 1fa0c060 { v0.h = vasr(v0.h,v0.h) } 1091 1092// V6_vasruhubrndsat 1093// Vd32.ub=vasr(Vu32.uh,Vv32.uh,Rt8):rnd:sat 1094 v0.ub=vasr(v0.uh,v0.uh,r0):rnd:sat 1095# CHECK-NEXT: 1800c0e0 { v0.ub = vasr(v0.uh,v0.uh,r0):rnd:sat } 1096 1097// V6_vasruhubsat 1098// Vd32.ub=vasr(Vu32.uh,Vv32.uh,Rt8):sat 1099 v0.ub=vasr(v0.uh,v0.uh,r0):sat 1100# CHECK-NEXT: 1800e0a0 { v0.ub = vasr(v0.uh,v0.uh,r0):sat } 1101 1102// V6_vasruwuhrndsat 1103// Vd32.uh=vasr(Vu32.uw,Vv32.uw,Rt8):rnd:sat 1104 v0.uh=vasr(v0.uw,v0.uw,r0):rnd:sat 1105# CHECK-NEXT: 1800c020 { v0.uh = vasr(v0.uw,v0.uw,r0):rnd:sat } 1106 1107// V6_vasruwuhsat 1108// Vd32.uh=vasr(Vu32.uw,Vv32.uw,Rt8):sat 1109 v0.uh=vasr(v0.uw,v0.uw,r0):sat 1110# CHECK-NEXT: 1800e080 { v0.uh = vasr(v0.uw,v0.uw,r0):sat } 1111 1112// V6_vasrw 1113// Vd32.w=vasr(Vu32.w,Rt32) 1114 v0.w=vasr(v0.w,r0) 1115# CHECK-NEXT: 1960c0a0 { v0.w = vasr(v0.w,r0) } 1116 1117// V6_vasrw_acc 1118// Vx32.w+=vasr(Vu32.w,Rt32) 1119 v0.w+=vasr(v0.w,r0) 1120# CHECK-NEXT: 1960e0a0 { v0.w += vasr(v0.w,r0) } 1121 1122// V6_vasrwh 1123// Vd32.h=vasr(Vu32.w,Vv32.w,Rt8) 1124 v0.h=vasr(v0.w,v0.w,r0) 1125# CHECK-NEXT: 1b00c040 { v0.h = vasr(v0.w,v0.w,r0) } 1126 1127// V6_vasrwhrndsat 1128// Vd32.h=vasr(Vu32.w,Vv32.w,Rt8):rnd:sat 1129 v0.h=vasr(v0.w,v0.w,r0):rnd:sat 1130# CHECK-NEXT: 1b00c080 { v0.h = vasr(v0.w,v0.w,r0):rnd:sat } 1131 1132// V6_vasrwhsat 1133// Vd32.h=vasr(Vu32.w,Vv32.w,Rt8):sat 1134 v0.h=vasr(v0.w,v0.w,r0):sat 1135# CHECK-NEXT: 1b00c060 { v0.h = vasr(v0.w,v0.w,r0):sat } 1136 1137// V6_vasrwuhrndsat 1138// Vd32.uh=vasr(Vu32.w,Vv32.w,Rt8):rnd:sat 1139 v0.uh=vasr(v0.w,v0.w,r0):rnd:sat 1140# CHECK-NEXT: 1800c040 { v0.uh = vasr(v0.w,v0.w,r0):rnd:sat } 1141 1142// V6_vasrwuhsat 1143// Vd32.uh=vasr(Vu32.w,Vv32.w,Rt8):sat 1144 v0.uh=vasr(v0.w,v0.w,r0):sat 1145# CHECK-NEXT: 1b00c0a0 { v0.uh = vasr(v0.w,v0.w,r0):sat } 1146 1147// V6_vasrwv 1148// Vd32.w=vasr(Vu32.w,Vv32.w) 1149 v0.w=vasr(v0.w,v0.w) 1150# CHECK-NEXT: 1fa0c000 { v0.w = vasr(v0.w,v0.w) } 1151 1152// V6_vassign 1153// Vd32=Vu32 1154 v0=v0 1155# CHECK-NEXT: 1e03e0e0 { v0 = v0 } 1156 1157// V6_vavgb 1158// Vd32.b=vavg(Vu32.b,Vv32.b) 1159 v0.b=vavg(v0.b,v0.b) 1160# CHECK-NEXT: 1f00e080 { v0.b = vavg(v0.b,v0.b) } 1161 1162// V6_vavgbrnd 1163// Vd32.b=vavg(Vu32.b,Vv32.b):rnd 1164 v0.b=vavg(v0.b,v0.b):rnd 1165# CHECK-NEXT: 1f00e0a0 { v0.b = vavg(v0.b,v0.b):rnd } 1166 1167// V6_vavgh 1168// Vd32.h=vavg(Vu32.h,Vv32.h) 1169 v0.h=vavg(v0.h,v0.h) 1170# CHECK-NEXT: 1cc0c0c0 { v0.h = vavg(v0.h,v0.h) } 1171 1172// V6_vavghrnd 1173// Vd32.h=vavg(Vu32.h,Vv32.h):rnd 1174 v0.h=vavg(v0.h,v0.h):rnd 1175# CHECK-NEXT: 1ce0c0a0 { v0.h = vavg(v0.h,v0.h):rnd } 1176 1177// V6_vavgub 1178// Vd32.ub=vavg(Vu32.ub,Vv32.ub) 1179 v0.ub=vavg(v0.ub,v0.ub) 1180# CHECK-NEXT: 1cc0c080 { v0.ub = vavg(v0.ub,v0.ub) } 1181 1182// V6_vavgubrnd 1183// Vd32.ub=vavg(Vu32.ub,Vv32.ub):rnd 1184 v0.ub=vavg(v0.ub,v0.ub):rnd 1185# CHECK-NEXT: 1ce0c060 { v0.ub = vavg(v0.ub,v0.ub):rnd } 1186 1187// V6_vavguh 1188// Vd32.uh=vavg(Vu32.uh,Vv32.uh) 1189 v0.uh=vavg(v0.uh,v0.uh) 1190# CHECK-NEXT: 1cc0c0a0 { v0.uh = vavg(v0.uh,v0.uh) } 1191 1192// V6_vavguhrnd 1193// Vd32.uh=vavg(Vu32.uh,Vv32.uh):rnd 1194 v0.uh=vavg(v0.uh,v0.uh):rnd 1195# CHECK-NEXT: 1ce0c080 { v0.uh = vavg(v0.uh,v0.uh):rnd } 1196 1197// V6_vavguw 1198// Vd32.uw=vavg(Vu32.uw,Vv32.uw) 1199 v0.uw=vavg(v0.uw,v0.uw) 1200# CHECK-NEXT: 1f00e040 { v0.uw = vavg(v0.uw,v0.uw) } 1201 1202// V6_vavguwrnd 1203// Vd32.uw=vavg(Vu32.uw,Vv32.uw):rnd 1204 v0.uw=vavg(v0.uw,v0.uw):rnd 1205# CHECK-NEXT: 1f00e060 { v0.uw = vavg(v0.uw,v0.uw):rnd } 1206 1207// V6_vavgw 1208// Vd32.w=vavg(Vu32.w,Vv32.w) 1209 v0.w=vavg(v0.w,v0.w) 1210# CHECK-NEXT: 1cc0c0e0 { v0.w = vavg(v0.w,v0.w) } 1211 1212// V6_vavgwrnd 1213// Vd32.w=vavg(Vu32.w,Vv32.w):rnd 1214 v0.w=vavg(v0.w,v0.w):rnd 1215# CHECK-NEXT: 1ce0c0c0 { v0.w = vavg(v0.w,v0.w):rnd } 1216 1217// V6_vccombine 1218// if (Ps4) Vdd32=vcombine(Vu32,Vv32) 1219 if (p0) v1:0=vcombine(v0,v0) 1220# CHECK-NEXT: 1a60c000 { if (p0) v1:0 = vcombine(v0,v0) } 1221 1222// V6_vcl0h 1223// Vd32.uh=vcl0(Vu32.uh) 1224 v0.uh=vcl0(v0.uh) 1225# CHECK-NEXT: 1e02c0e0 { v0.uh = vcl0(v0.uh) } 1226 1227// V6_vcl0w 1228// Vd32.uw=vcl0(Vu32.uw) 1229 v0.uw=vcl0(v0.uw) 1230# CHECK-NEXT: 1e02c0a0 { v0.uw = vcl0(v0.uw) } 1231 1232// V6_vcmov 1233// if (Ps4) Vd32=Vu32 1234 if (p0) v0=v0 1235# CHECK-NEXT: 1a00c000 { if (p0) v0 = v0 } 1236 1237// V6_vcombine 1238// Vdd32=vcombine(Vu32,Vv32) 1239 v1:0=vcombine(v0,v0) 1240# CHECK-NEXT: 1f40c0e0 { v1:0 = vcombine(v0,v0) } 1241 1242// V6_vdeal 1243// vdeal(Vy32,Vx32,Rt32) 1244 vdeal(v0,v0,r0) 1245# CHECK-NEXT: 19e0e040 { vdeal(v0,v0,r0) } 1246 1247// V6_vdealb 1248// Vd32.b=vdeal(Vu32.b) 1249 v0.b=vdeal(v0.b) 1250# CHECK-NEXT: 1e00c0e0 { v0.b = vdeal(v0.b) } 1251 1252// V6_vdealb4w 1253// Vd32.b=vdeale(Vu32.b,Vv32.b) 1254 v0.b=vdeale(v0.b,v0.b) 1255# CHECK-NEXT: 1f20c0e0 { v0.b = vdeale(v0.b,v0.b) } 1256 1257// V6_vdealh 1258// Vd32.h=vdeal(Vu32.h) 1259 v0.h=vdeal(v0.h) 1260# CHECK-NEXT: 1e00c0c0 { v0.h = vdeal(v0.h) } 1261 1262// V6_vdealvdd 1263// Vdd32=vdeal(Vu32,Vv32,Rt8) 1264 v1:0=vdeal(v0,v0,r0) 1265# CHECK-NEXT: 1b00e080 { v1:0 = vdeal(v0,v0,r0) } 1266 1267// V6_vdelta 1268// Vd32=vdelta(Vu32,Vv32) 1269 v0=vdelta(v0,v0) 1270# CHECK-NEXT: 1f20c020 { v0 = vdelta(v0,v0) } 1271 1272// V6_vdmpybus 1273// Vd32.h=vdmpy(Vu32.ub,Rt32.b) 1274 v0.h=vdmpy(v0.ub,r0.b) 1275# CHECK-NEXT: 1900c0c0 { v0.h = vdmpy(v0.ub,r0.b) } 1276 1277// V6_vdmpybus_acc 1278// Vx32.h+=vdmpy(Vu32.ub,Rt32.b) 1279 v0.h+=vdmpy(v0.ub,r0.b) 1280# CHECK-NEXT: 1900e0c0 { v0.h += vdmpy(v0.ub,r0.b) } 1281 1282// V6_vdmpybus_dv 1283// Vdd32.h=vdmpy(Vuu32.ub,Rt32.b) 1284 v1:0.h=vdmpy(v1:0.ub,r0.b) 1285# CHECK-NEXT: 1900c0e0 { v1:0.h = vdmpy(v1:0.ub,r0.b) } 1286 1287// V6_vdmpybus_dv_acc 1288// Vxx32.h+=vdmpy(Vuu32.ub,Rt32.b) 1289 v1:0.h+=vdmpy(v1:0.ub,r0.b) 1290# CHECK-NEXT: 1900e0e0 { v1:0.h += vdmpy(v1:0.ub,r0.b) } 1291 1292// V6_vdmpyhb 1293// Vd32.w=vdmpy(Vu32.h,Rt32.b) 1294 v0.w=vdmpy(v0.h,r0.b) 1295# CHECK-NEXT: 1900c040 { v0.w = vdmpy(v0.h,r0.b) } 1296 1297// V6_vdmpyhb_acc 1298// Vx32.w+=vdmpy(Vu32.h,Rt32.b) 1299 v0.w+=vdmpy(v0.h,r0.b) 1300# CHECK-NEXT: 1900e060 { v0.w += vdmpy(v0.h,r0.b) } 1301 1302// V6_vdmpyhb_dv 1303// Vdd32.w=vdmpy(Vuu32.h,Rt32.b) 1304 v1:0.w=vdmpy(v1:0.h,r0.b) 1305# CHECK-NEXT: 1920c080 { v1:0.w = vdmpy(v1:0.h,r0.b) } 1306 1307// V6_vdmpyhb_dv_acc 1308// Vxx32.w+=vdmpy(Vuu32.h,Rt32.b) 1309 v1:0.w+=vdmpy(v1:0.h,r0.b) 1310# CHECK-NEXT: 1920e080 { v1:0.w += vdmpy(v1:0.h,r0.b) } 1311 1312// V6_vdmpyhisat 1313// Vd32.w=vdmpy(Vuu32.h,Rt32.h):sat 1314 v0.w=vdmpy(v1:0.h,r0.h):sat 1315# CHECK-NEXT: 1920c060 { v0.w = vdmpy(v1:0.h,r0.h):sat } 1316 1317// V6_vdmpyhisat_acc 1318// Vx32.w+=vdmpy(Vuu32.h,Rt32.h):sat 1319 v0.w+=vdmpy(v1:0.h,r0.h):sat 1320# CHECK-NEXT: 1920e040 { v0.w += vdmpy(v1:0.h,r0.h):sat } 1321 1322// V6_vdmpyhsat 1323// Vd32.w=vdmpy(Vu32.h,Rt32.h):sat 1324 v0.w=vdmpy(v0.h,r0.h):sat 1325# CHECK-NEXT: 1920c040 { v0.w = vdmpy(v0.h,r0.h):sat } 1326 1327// V6_vdmpyhsat_acc 1328// Vx32.w+=vdmpy(Vu32.h,Rt32.h):sat 1329 v0.w+=vdmpy(v0.h,r0.h):sat 1330# CHECK-NEXT: 1920e060 { v0.w += vdmpy(v0.h,r0.h):sat } 1331 1332// V6_vdmpyhsuisat 1333// Vd32.w=vdmpy(Vuu32.h,Rt32.uh,#1):sat 1334 v0.w=vdmpy(v1:0.h,r0.uh,#1):sat 1335# CHECK-NEXT: 1920c020 { v0.w = vdmpy(v1:0.h,r0.uh,#1):sat } 1336 1337// V6_vdmpyhsuisat_acc 1338// Vx32.w+=vdmpy(Vuu32.h,Rt32.uh,#1):sat 1339 v0.w+=vdmpy(v1:0.h,r0.uh,#1):sat 1340# CHECK-NEXT: 1920e020 { v0.w += vdmpy(v1:0.h,r0.uh,#1):sat } 1341 1342// V6_vdmpyhsusat 1343// Vd32.w=vdmpy(Vu32.h,Rt32.uh):sat 1344 v0.w=vdmpy(v0.h,r0.uh):sat 1345# CHECK-NEXT: 1920c000 { v0.w = vdmpy(v0.h,r0.uh):sat } 1346 1347// V6_vdmpyhsusat_acc 1348// Vx32.w+=vdmpy(Vu32.h,Rt32.uh):sat 1349 v0.w+=vdmpy(v0.h,r0.uh):sat 1350# CHECK-NEXT: 1920e000 { v0.w += vdmpy(v0.h,r0.uh):sat } 1351 1352// V6_vdmpyhvsat 1353// Vd32.w=vdmpy(Vu32.h,Vv32.h):sat 1354 v0.w=vdmpy(v0.h,v0.h):sat 1355# CHECK-NEXT: 1c00c060 { v0.w = vdmpy(v0.h,v0.h):sat } 1356 1357// V6_vdmpyhvsat_acc 1358// Vx32.w+=vdmpy(Vu32.h,Vv32.h):sat 1359 v0.w+=vdmpy(v0.h,v0.h):sat 1360# CHECK-NEXT: 1c00e060 { v0.w += vdmpy(v0.h,v0.h):sat } 1361 1362// V6_vdsaduh 1363// Vdd32.uw=vdsad(Vuu32.uh,Rt32.uh) 1364 v1:0.uw=vdsad(v1:0.uh,r0.uh) 1365# CHECK-NEXT: 1900c0a0 { v1:0.uw = vdsad(v1:0.uh,r0.uh) } 1366 1367// V6_vdsaduh_acc 1368// Vxx32.uw+=vdsad(Vuu32.uh,Rt32.uh) 1369 v1:0.uw+=vdsad(v1:0.uh,r0.uh) 1370# CHECK-NEXT: 1960e000 { v1:0.uw += vdsad(v1:0.uh,r0.uh) } 1371 1372// V6_veqb 1373// Qd4=vcmp.eq(Vu32.b,Vv32.b) 1374 q0=vcmp.eq(v0.b,v0.b) 1375# CHECK-NEXT: 1f80c000 { q0 = vcmp.eq(v0.b,v0.b) } 1376 1377// V6_veqb_and 1378// Qx4&=vcmp.eq(Vu32.b,Vv32.b) 1379 q0&=vcmp.eq(v0.b,v0.b) 1380# CHECK-NEXT: 1c80e000 { q0 &= vcmp.eq(v0.b,v0.b) } 1381 1382// V6_veqb_or 1383// Qx4|=vcmp.eq(Vu32.b,Vv32.b) 1384 q0|=vcmp.eq(v0.b,v0.b) 1385# CHECK-NEXT: 1c80e040 { q0 |= vcmp.eq(v0.b,v0.b) } 1386 1387// V6_veqb_xor 1388// Qx4^=vcmp.eq(Vu32.b,Vv32.b) 1389 q0^=vcmp.eq(v0.b,v0.b) 1390# CHECK-NEXT: 1c80e080 { q0 ^= vcmp.eq(v0.b,v0.b) } 1391 1392// V6_veqh 1393// Qd4=vcmp.eq(Vu32.h,Vv32.h) 1394 q0=vcmp.eq(v0.h,v0.h) 1395# CHECK-NEXT: 1f80c004 { q0 = vcmp.eq(v0.h,v0.h) } 1396 1397// V6_veqh_and 1398// Qx4&=vcmp.eq(Vu32.h,Vv32.h) 1399 q0&=vcmp.eq(v0.h,v0.h) 1400# CHECK-NEXT: 1c80e004 { q0 &= vcmp.eq(v0.h,v0.h) } 1401 1402// V6_veqh_or 1403// Qx4|=vcmp.eq(Vu32.h,Vv32.h) 1404 q0|=vcmp.eq(v0.h,v0.h) 1405# CHECK-NEXT: 1c80e044 { q0 |= vcmp.eq(v0.h,v0.h) } 1406 1407// V6_veqh_xor 1408// Qx4^=vcmp.eq(Vu32.h,Vv32.h) 1409 q0^=vcmp.eq(v0.h,v0.h) 1410# CHECK-NEXT: 1c80e084 { q0 ^= vcmp.eq(v0.h,v0.h) } 1411 1412// V6_veqw 1413// Qd4=vcmp.eq(Vu32.w,Vv32.w) 1414 q0=vcmp.eq(v0.w,v0.w) 1415# CHECK-NEXT: 1f80c008 { q0 = vcmp.eq(v0.w,v0.w) } 1416 1417// V6_veqw_and 1418// Qx4&=vcmp.eq(Vu32.w,Vv32.w) 1419 q0&=vcmp.eq(v0.w,v0.w) 1420# CHECK-NEXT: 1c80e008 { q0 &= vcmp.eq(v0.w,v0.w) } 1421 1422// V6_veqw_or 1423// Qx4|=vcmp.eq(Vu32.w,Vv32.w) 1424 q0|=vcmp.eq(v0.w,v0.w) 1425# CHECK-NEXT: 1c80e048 { q0 |= vcmp.eq(v0.w,v0.w) } 1426 1427// V6_veqw_xor 1428// Qx4^=vcmp.eq(Vu32.w,Vv32.w) 1429 q0^=vcmp.eq(v0.w,v0.w) 1430# CHECK-NEXT: 1c80e088 { q0 ^= vcmp.eq(v0.w,v0.w) } 1431 1432// V6_vgathermh 1433// vtmp.h=vgather(Rt32,Mu2,Vv32.h).h 1434 vtmp.h=vgather(r0,m0,v0.h).h 1435# CHECK-NEXT: 2f00c100 { vtmp.h = vgather(r0,m0,v0.h).h } 1436 1437// V6_vgathermhq 1438// if (Qs4) vtmp.h=vgather(Rt32,Mu2,Vv32.h).h 1439 if (q0) vtmp.h=vgather(r0,m0,v0.h).h 1440# CHECK-NEXT: 2f00c500 { if (q0) vtmp.h = vgather(r0,m0,v0.h).h } 1441 1442// V6_vgathermhw 1443// vtmp.h=vgather(Rt32,Mu2,Vvv32.w).h 1444 vtmp.h=vgather(r0,m0,v1:0.w).h 1445# CHECK-NEXT: 2f00c200 { vtmp.h = vgather(r0,m0,v1:0.w).h } 1446 1447// V6_vgathermhwq 1448// if (Qs4) vtmp.h=vgather(Rt32,Mu2,Vvv32.w).h 1449 if (q0) vtmp.h=vgather(r0,m0,v1:0.w).h 1450# CHECK-NEXT: 2f00c600 { if (q0) vtmp.h = vgather(r0,m0,v1:0.w).h } 1451 1452// V6_vgathermw 1453// vtmp.w=vgather(Rt32,Mu2,Vv32.w).w 1454 vtmp.w=vgather(r0,m0,v0.w).w 1455# CHECK-NEXT: 2f00c000 { vtmp.w = vgather(r0,m0,v0.w).w } 1456 1457// V6_vgathermwq 1458// if (Qs4) vtmp.w=vgather(Rt32,Mu2,Vv32.w).w 1459 if (q0) vtmp.w=vgather(r0,m0,v0.w).w 1460# CHECK-NEXT: 2f00c400 { if (q0) vtmp.w = vgather(r0,m0,v0.w).w } 1461 1462// V6_vgtb 1463// Qd4=vcmp.gt(Vu32.b,Vv32.b) 1464 q0=vcmp.gt(v0.b,v0.b) 1465# CHECK-NEXT: 1f80c010 { q0 = vcmp.gt(v0.b,v0.b) } 1466 1467// V6_vgtb_and 1468// Qx4&=vcmp.gt(Vu32.b,Vv32.b) 1469 q0&=vcmp.gt(v0.b,v0.b) 1470# CHECK-NEXT: 1c80e010 { q0 &= vcmp.gt(v0.b,v0.b) } 1471 1472// V6_vgtb_or 1473// Qx4|=vcmp.gt(Vu32.b,Vv32.b) 1474 q0|=vcmp.gt(v0.b,v0.b) 1475# CHECK-NEXT: 1c80e050 { q0 |= vcmp.gt(v0.b,v0.b) } 1476 1477// V6_vgtb_xor 1478// Qx4^=vcmp.gt(Vu32.b,Vv32.b) 1479 q0^=vcmp.gt(v0.b,v0.b) 1480# CHECK-NEXT: 1c80e090 { q0 ^= vcmp.gt(v0.b,v0.b) } 1481 1482// V6_vgth 1483// Qd4=vcmp.gt(Vu32.h,Vv32.h) 1484 q0=vcmp.gt(v0.h,v0.h) 1485# CHECK-NEXT: 1f80c014 { q0 = vcmp.gt(v0.h,v0.h) } 1486 1487// V6_vgth_and 1488// Qx4&=vcmp.gt(Vu32.h,Vv32.h) 1489 q0&=vcmp.gt(v0.h,v0.h) 1490# CHECK-NEXT: 1c80e014 { q0 &= vcmp.gt(v0.h,v0.h) } 1491 1492// V6_vgth_or 1493// Qx4|=vcmp.gt(Vu32.h,Vv32.h) 1494 q0|=vcmp.gt(v0.h,v0.h) 1495# CHECK-NEXT: 1c80e054 { q0 |= vcmp.gt(v0.h,v0.h) } 1496 1497// V6_vgth_xor 1498// Qx4^=vcmp.gt(Vu32.h,Vv32.h) 1499 q0^=vcmp.gt(v0.h,v0.h) 1500# CHECK-NEXT: 1c80e094 { q0 ^= vcmp.gt(v0.h,v0.h) } 1501 1502// V6_vgtub 1503// Qd4=vcmp.gt(Vu32.ub,Vv32.ub) 1504 q0=vcmp.gt(v0.ub,v0.ub) 1505# CHECK-NEXT: 1f80c020 { q0 = vcmp.gt(v0.ub,v0.ub) } 1506 1507// V6_vgtub_and 1508// Qx4&=vcmp.gt(Vu32.ub,Vv32.ub) 1509 q0&=vcmp.gt(v0.ub,v0.ub) 1510# CHECK-NEXT: 1c80e020 { q0 &= vcmp.gt(v0.ub,v0.ub) } 1511 1512// V6_vgtub_or 1513// Qx4|=vcmp.gt(Vu32.ub,Vv32.ub) 1514 q0|=vcmp.gt(v0.ub,v0.ub) 1515# CHECK-NEXT: 1c80e060 { q0 |= vcmp.gt(v0.ub,v0.ub) } 1516 1517// V6_vgtub_xor 1518// Qx4^=vcmp.gt(Vu32.ub,Vv32.ub) 1519 q0^=vcmp.gt(v0.ub,v0.ub) 1520# CHECK-NEXT: 1c80e0a0 { q0 ^= vcmp.gt(v0.ub,v0.ub) } 1521 1522// V6_vgtuh 1523// Qd4=vcmp.gt(Vu32.uh,Vv32.uh) 1524 q0=vcmp.gt(v0.uh,v0.uh) 1525# CHECK-NEXT: 1f80c024 { q0 = vcmp.gt(v0.uh,v0.uh) } 1526 1527// V6_vgtuh_and 1528// Qx4&=vcmp.gt(Vu32.uh,Vv32.uh) 1529 q0&=vcmp.gt(v0.uh,v0.uh) 1530# CHECK-NEXT: 1c80e024 { q0 &= vcmp.gt(v0.uh,v0.uh) } 1531 1532// V6_vgtuh_or 1533// Qx4|=vcmp.gt(Vu32.uh,Vv32.uh) 1534 q0|=vcmp.gt(v0.uh,v0.uh) 1535# CHECK-NEXT: 1c80e064 { q0 |= vcmp.gt(v0.uh,v0.uh) } 1536 1537// V6_vgtuh_xor 1538// Qx4^=vcmp.gt(Vu32.uh,Vv32.uh) 1539 q0^=vcmp.gt(v0.uh,v0.uh) 1540# CHECK-NEXT: 1c80e0a4 { q0 ^= vcmp.gt(v0.uh,v0.uh) } 1541 1542// V6_vgtuw 1543// Qd4=vcmp.gt(Vu32.uw,Vv32.uw) 1544 q0=vcmp.gt(v0.uw,v0.uw) 1545# CHECK-NEXT: 1f80c028 { q0 = vcmp.gt(v0.uw,v0.uw) } 1546 1547// V6_vgtuw_and 1548// Qx4&=vcmp.gt(Vu32.uw,Vv32.uw) 1549 q0&=vcmp.gt(v0.uw,v0.uw) 1550# CHECK-NEXT: 1c80e028 { q0 &= vcmp.gt(v0.uw,v0.uw) } 1551 1552// V6_vgtuw_or 1553// Qx4|=vcmp.gt(Vu32.uw,Vv32.uw) 1554 q0|=vcmp.gt(v0.uw,v0.uw) 1555# CHECK-NEXT: 1c80e068 { q0 |= vcmp.gt(v0.uw,v0.uw) } 1556 1557// V6_vgtuw_xor 1558// Qx4^=vcmp.gt(Vu32.uw,Vv32.uw) 1559 q0^=vcmp.gt(v0.uw,v0.uw) 1560# CHECK-NEXT: 1c80e0a8 { q0 ^= vcmp.gt(v0.uw,v0.uw) } 1561 1562// V6_vgtw 1563// Qd4=vcmp.gt(Vu32.w,Vv32.w) 1564 q0=vcmp.gt(v0.w,v0.w) 1565# CHECK-NEXT: 1f80c018 { q0 = vcmp.gt(v0.w,v0.w) } 1566 1567// V6_vgtw_and 1568// Qx4&=vcmp.gt(Vu32.w,Vv32.w) 1569 q0&=vcmp.gt(v0.w,v0.w) 1570# CHECK-NEXT: 1c80e018 { q0 &= vcmp.gt(v0.w,v0.w) } 1571 1572// V6_vgtw_or 1573// Qx4|=vcmp.gt(Vu32.w,Vv32.w) 1574 q0|=vcmp.gt(v0.w,v0.w) 1575# CHECK-NEXT: 1c80e058 { q0 |= vcmp.gt(v0.w,v0.w) } 1576 1577// V6_vgtw_xor 1578// Qx4^=vcmp.gt(Vu32.w,Vv32.w) 1579 q0^=vcmp.gt(v0.w,v0.w) 1580# CHECK-NEXT: 1c80e098 { q0 ^= vcmp.gt(v0.w,v0.w) } 1581 1582// V6_vhist 1583// vhist 1584 vhist 1585# CHECK-NEXT: 1e00e080 { vhist } 1586 1587// V6_vhistq 1588// vhist(Qv4) 1589 vhist(q0) 1590# CHECK-NEXT: 1e02e080 { vhist(q0) } 1591 1592// V6_vinsertwr 1593// Vx32.w=vinsert(Rt32) 1594 v0.w=vinsert(r0) 1595# CHECK-NEXT: 19a0e020 { v0.w = vinsert(r0) } 1596 1597// V6_vlalignb 1598// Vd32=vlalign(Vu32,Vv32,Rt8) 1599 v0=vlalign(v0,v0,r0) 1600# CHECK-NEXT: 1b00c020 { v0 = vlalign(v0,v0,r0) } 1601 1602// V6_vlalignbi 1603// Vd32=vlalign(Vu32,Vv32,#u3) 1604 v0=vlalign(v0,v0,#0) 1605# CHECK-NEXT: 1e60e000 { v0 = vlalign(v0,v0,#0) } 1606 1607// V6_vlsrb 1608// Vd32.ub=vlsr(Vu32.ub,Rt32) 1609 v0.ub=vlsr(v0.ub,r0) 1610# CHECK-NEXT: 1980c060 { v0.ub = vlsr(v0.ub,r0) } 1611 1612// V6_vlsrh 1613// Vd32.uh=vlsr(Vu32.uh,Rt32) 1614 v0.uh=vlsr(v0.uh,r0) 1615# CHECK-NEXT: 1980c040 { v0.uh = vlsr(v0.uh,r0) } 1616 1617// V6_vlsrhv 1618// Vd32.h=vlsr(Vu32.h,Vv32.h) 1619 v0.h=vlsr(v0.h,v0.h) 1620# CHECK-NEXT: 1fa0c040 { v0.h = vlsr(v0.h,v0.h) } 1621 1622// V6_vlsrw 1623// Vd32.uw=vlsr(Vu32.uw,Rt32) 1624 v0.uw=vlsr(v0.uw,r0) 1625# CHECK-NEXT: 1980c020 { v0.uw = vlsr(v0.uw,r0) } 1626 1627// V6_vlsrwv 1628// Vd32.w=vlsr(Vu32.w,Vv32.w) 1629 v0.w=vlsr(v0.w,v0.w) 1630# CHECK-NEXT: 1fa0c020 { v0.w = vlsr(v0.w,v0.w) } 1631 1632// V6_vlut4 1633// Vd32.h=vlut4(Vu32.uh,Rtt32.h) 1634 v0.h=vlut4(v0.uh,r1:0.h) 1635# CHECK-NEXT: 1960c080 { v0.h = vlut4(v0.uh,r1:0.h) } 1636 1637// V6_vlutvvb 1638// Vd32.b=vlut32(Vu32.b,Vv32.b,Rt8) 1639 v0.b=vlut32(v0.b,v0.b,r0) 1640# CHECK-NEXT: 1b00e020 { v0.b = vlut32(v0.b,v0.b,r0) } 1641 1642// V6_vlutvvb_nm 1643// Vd32.b=vlut32(Vu32.b,Vv32.b,Rt8):nomatch 1644 v0.b=vlut32(v0.b,v0.b,r0):nomatch 1645# CHECK-NEXT: 1800c060 { v0.b = vlut32(v0.b,v0.b,r0):nomatch } 1646 1647// V6_vlutvvb_oracc 1648// Vx32.b|=vlut32(Vu32.b,Vv32.b,Rt8) 1649 v0.b|=vlut32(v0.b,v0.b,r0) 1650# CHECK-NEXT: 1b00e0a0 { v0.b |= vlut32(v0.b,v0.b,r0) } 1651 1652// V6_vlutvvb_oracci 1653// Vx32.b|=vlut32(Vu32.b,Vv32.b,#u3) 1654 v0.b|=vlut32(v0.b,v0.b,#0) 1655# CHECK-NEXT: 1cc0e000 { v0.b |= vlut32(v0.b,v0.b,#0) } 1656 1657// V6_vlutvvbi 1658// Vd32.b=vlut32(Vu32.b,Vv32.b,#u3) 1659 v0.b=vlut32(v0.b,v0.b,#0) 1660# CHECK-NEXT: 1e20c000 { v0.b = vlut32(v0.b,v0.b,#0) } 1661 1662// V6_vlutvwh 1663// Vdd32.h=vlut16(Vu32.b,Vv32.h,Rt8) 1664 v1:0.h=vlut16(v0.b,v0.h,r0) 1665# CHECK-NEXT: 1b00e0c0 { v1:0.h = vlut16(v0.b,v0.h,r0) } 1666 1667// V6_vlutvwh_nm 1668// Vdd32.h=vlut16(Vu32.b,Vv32.h,Rt8):nomatch 1669 v1:0.h=vlut16(v0.b,v0.h,r0):nomatch 1670# CHECK-NEXT: 1800c080 { v1:0.h = vlut16(v0.b,v0.h,r0):nomatch } 1671 1672// V6_vlutvwh_oracc 1673// Vxx32.h|=vlut16(Vu32.b,Vv32.h,Rt8) 1674 v1:0.h|=vlut16(v0.b,v0.h,r0) 1675# CHECK-NEXT: 1b00e0e0 { v1:0.h |= vlut16(v0.b,v0.h,r0) } 1676 1677// V6_vlutvwh_oracci 1678// Vxx32.h|=vlut16(Vu32.b,Vv32.h,#u3) 1679 v1:0.h|=vlut16(v0.b,v0.h,#0) 1680# CHECK-NEXT: 1ce0e000 { v1:0.h |= vlut16(v0.b,v0.h,#0) } 1681 1682// V6_vlutvwhi 1683// Vdd32.h=vlut16(Vu32.b,Vv32.h,#u3) 1684 v1:0.h=vlut16(v0.b,v0.h,#0) 1685# CHECK-NEXT: 1e60c000 { v1:0.h = vlut16(v0.b,v0.h,#0) } 1686 1687// V6_vmaxb 1688// Vd32.b=vmax(Vu32.b,Vv32.b) 1689 v0.b=vmax(v0.b,v0.b) 1690# CHECK-NEXT: 1f20c0a0 { v0.b = vmax(v0.b,v0.b) } 1691 1692// V6_vmaxh 1693// Vd32.h=vmax(Vu32.h,Vv32.h) 1694 v0.h=vmax(v0.h,v0.h) 1695# CHECK-NEXT: 1f00c0e0 { v0.h = vmax(v0.h,v0.h) } 1696 1697// V6_vmaxub 1698// Vd32.ub=vmax(Vu32.ub,Vv32.ub) 1699 v0.ub=vmax(v0.ub,v0.ub) 1700# CHECK-NEXT: 1f00c0a0 { v0.ub = vmax(v0.ub,v0.ub) } 1701 1702// V6_vmaxuh 1703// Vd32.uh=vmax(Vu32.uh,Vv32.uh) 1704 v0.uh=vmax(v0.uh,v0.uh) 1705# CHECK-NEXT: 1f00c0c0 { v0.uh = vmax(v0.uh,v0.uh) } 1706 1707// V6_vmaxw 1708// Vd32.w=vmax(Vu32.w,Vv32.w) 1709 v0.w=vmax(v0.w,v0.w) 1710# CHECK-NEXT: 1f20c000 { v0.w = vmax(v0.w,v0.w) } 1711 1712// V6_vminb 1713// Vd32.b=vmin(Vu32.b,Vv32.b) 1714 v0.b=vmin(v0.b,v0.b) 1715# CHECK-NEXT: 1f20c080 { v0.b = vmin(v0.b,v0.b) } 1716 1717// V6_vminh 1718// Vd32.h=vmin(Vu32.h,Vv32.h) 1719 v0.h=vmin(v0.h,v0.h) 1720# CHECK-NEXT: 1f00c060 { v0.h = vmin(v0.h,v0.h) } 1721 1722// V6_vminub 1723// Vd32.ub=vmin(Vu32.ub,Vv32.ub) 1724 v0.ub=vmin(v0.ub,v0.ub) 1725# CHECK-NEXT: 1f00c020 { v0.ub = vmin(v0.ub,v0.ub) } 1726 1727// V6_vminuh 1728// Vd32.uh=vmin(Vu32.uh,Vv32.uh) 1729 v0.uh=vmin(v0.uh,v0.uh) 1730# CHECK-NEXT: 1f00c040 { v0.uh = vmin(v0.uh,v0.uh) } 1731 1732// V6_vminw 1733// Vd32.w=vmin(Vu32.w,Vv32.w) 1734 v0.w=vmin(v0.w,v0.w) 1735# CHECK-NEXT: 1f00c080 { v0.w = vmin(v0.w,v0.w) } 1736 1737// V6_vmpabus 1738// Vdd32.h=vmpa(Vuu32.ub,Rt32.b) 1739 v1:0.h=vmpa(v1:0.ub,r0.b) 1740# CHECK-NEXT: 1920c0c0 { v1:0.h = vmpa(v1:0.ub,r0.b) } 1741 1742// V6_vmpabus_acc 1743// Vxx32.h+=vmpa(Vuu32.ub,Rt32.b) 1744 v1:0.h+=vmpa(v1:0.ub,r0.b) 1745# CHECK-NEXT: 1920e0c0 { v1:0.h += vmpa(v1:0.ub,r0.b) } 1746 1747// V6_vmpabusv 1748// Vdd32.h=vmpa(Vuu32.ub,Vvv32.b) 1749 v1:0.h=vmpa(v1:0.ub,v1:0.b) 1750# CHECK-NEXT: 1c20c060 { v1:0.h = vmpa(v1:0.ub,v1:0.b) } 1751 1752// V6_vmpabuu 1753// Vdd32.h=vmpa(Vuu32.ub,Rt32.ub) 1754 v1:0.h=vmpa(v1:0.ub,r0.ub) 1755# CHECK-NEXT: 1960c060 { v1:0.h = vmpa(v1:0.ub,r0.ub) } 1756 1757// V6_vmpabuu_acc 1758// Vxx32.h+=vmpa(Vuu32.ub,Rt32.ub) 1759 v1:0.h+=vmpa(v1:0.ub,r0.ub) 1760# CHECK-NEXT: 19a0e080 { v1:0.h += vmpa(v1:0.ub,r0.ub) } 1761 1762// V6_vmpabuuv 1763// Vdd32.h=vmpa(Vuu32.ub,Vvv32.ub) 1764 v1:0.h=vmpa(v1:0.ub,v1:0.ub) 1765# CHECK-NEXT: 1ce0c0e0 { v1:0.h = vmpa(v1:0.ub,v1:0.ub) } 1766 1767// V6_vmpahb 1768// Vdd32.w=vmpa(Vuu32.h,Rt32.b) 1769 v1:0.w=vmpa(v1:0.h,r0.b) 1770# CHECK-NEXT: 1920c0e0 { v1:0.w = vmpa(v1:0.h,r0.b) } 1771 1772// V6_vmpahb_acc 1773// Vxx32.w+=vmpa(Vuu32.h,Rt32.b) 1774 v1:0.w+=vmpa(v1:0.h,r0.b) 1775# CHECK-NEXT: 1920e0e0 { v1:0.w += vmpa(v1:0.h,r0.b) } 1776 1777// V6_vmpahhsat 1778// Vx32.h=vmpa(Vx32.h,Vu32.h,Rtt32.h):sat 1779 v0.h=vmpa(v0.h,v0.h,r1:0.h):sat 1780# CHECK-NEXT: 1980e080 { v0.h = vmpa(v0.h,v0.h,r1:0.h):sat } 1781 1782// V6_vmpauhb 1783// Vdd32.w=vmpa(Vuu32.uh,Rt32.b) 1784 v1:0.w=vmpa(v1:0.uh,r0.b) 1785# CHECK-NEXT: 1980c0a0 { v1:0.w = vmpa(v1:0.uh,r0.b) } 1786 1787// V6_vmpauhb_acc 1788// Vxx32.w+=vmpa(Vuu32.uh,Rt32.b) 1789 v1:0.w+=vmpa(v1:0.uh,r0.b) 1790# CHECK-NEXT: 1980e040 { v1:0.w += vmpa(v1:0.uh,r0.b) } 1791 1792// V6_vmpauhuhsat 1793// Vx32.h=vmpa(Vx32.h,Vu32.uh,Rtt32.uh):sat 1794 v0.h=vmpa(v0.h,v0.uh,r1:0.uh):sat 1795# CHECK-NEXT: 1980e0a0 { v0.h = vmpa(v0.h,v0.uh,r1:0.uh):sat } 1796 1797// V6_vmpsuhuhsat 1798// Vx32.h=vmps(Vx32.h,Vu32.uh,Rtt32.uh):sat 1799 v0.h=vmps(v0.h,v0.uh,r1:0.uh):sat 1800# CHECK-NEXT: 1980e0c0 { v0.h = vmps(v0.h,v0.uh,r1:0.uh):sat } 1801 1802// V6_vmpybus 1803// Vdd32.h=vmpy(Vu32.ub,Rt32.b) 1804 v1:0.h=vmpy(v0.ub,r0.b) 1805# CHECK-NEXT: 1920c0a0 { v1:0.h = vmpy(v0.ub,r0.b) } 1806 1807// V6_vmpybus_acc 1808// Vxx32.h+=vmpy(Vu32.ub,Rt32.b) 1809 v1:0.h+=vmpy(v0.ub,r0.b) 1810# CHECK-NEXT: 1920e0a0 { v1:0.h += vmpy(v0.ub,r0.b) } 1811 1812// V6_vmpybusv 1813// Vdd32.h=vmpy(Vu32.ub,Vv32.b) 1814 v1:0.h=vmpy(v0.ub,v0.b) 1815# CHECK-NEXT: 1c00c0c0 { v1:0.h = vmpy(v0.ub,v0.b) } 1816 1817// V6_vmpybusv_acc 1818// Vxx32.h+=vmpy(Vu32.ub,Vv32.b) 1819 v1:0.h+=vmpy(v0.ub,v0.b) 1820# CHECK-NEXT: 1c00e0c0 { v1:0.h += vmpy(v0.ub,v0.b) } 1821 1822// V6_vmpybv 1823// Vdd32.h=vmpy(Vu32.b,Vv32.b) 1824 v1:0.h=vmpy(v0.b,v0.b) 1825# CHECK-NEXT: 1c00c080 { v1:0.h = vmpy(v0.b,v0.b) } 1826 1827// V6_vmpybv_acc 1828// Vxx32.h+=vmpy(Vu32.b,Vv32.b) 1829 v1:0.h+=vmpy(v0.b,v0.b) 1830# CHECK-NEXT: 1c00e080 { v1:0.h += vmpy(v0.b,v0.b) } 1831 1832// V6_vmpyewuh 1833// Vd32.w=vmpye(Vu32.w,Vv32.uh) 1834 v0.w=vmpye(v0.w,v0.uh) 1835# CHECK-NEXT: 1fe0c0a0 { v0.w = vmpye(v0.w,v0.uh) } 1836 1837// V6_vmpyewuh_64 1838// Vdd32=vmpye(Vu32.w,Vv32.uh) 1839 v1:0=vmpye(v0.w,v0.uh) 1840# CHECK-NEXT: 1ea0c0c0 { v1:0 = vmpye(v0.w,v0.uh) } 1841 1842// V6_vmpyh 1843// Vdd32.w=vmpy(Vu32.h,Rt32.h) 1844 v1:0.w=vmpy(v0.h,r0.h) 1845# CHECK-NEXT: 1940c000 { v1:0.w = vmpy(v0.h,r0.h) } 1846 1847// V6_vmpyh_acc 1848// Vxx32.w+=vmpy(Vu32.h,Rt32.h) 1849 v1:0.w+=vmpy(v0.h,r0.h) 1850# CHECK-NEXT: 19a0e0c0 { v1:0.w += vmpy(v0.h,r0.h) } 1851 1852// V6_vmpyhsat_acc 1853// Vxx32.w+=vmpy(Vu32.h,Rt32.h):sat 1854 v1:0.w+=vmpy(v0.h,r0.h):sat 1855# CHECK-NEXT: 1940e000 { v1:0.w += vmpy(v0.h,r0.h):sat } 1856 1857// V6_vmpyhsrs 1858// Vd32.h=vmpy(Vu32.h,Rt32.h):<<1:rnd:sat 1859 v0.h=vmpy(v0.h,r0.h):<<1:rnd:sat 1860# CHECK-NEXT: 1940c040 { v0.h = vmpy(v0.h,r0.h):<<1:rnd:sat } 1861 1862// V6_vmpyhss 1863// Vd32.h=vmpy(Vu32.h,Rt32.h):<<1:sat 1864 v0.h=vmpy(v0.h,r0.h):<<1:sat 1865# CHECK-NEXT: 1940c020 { v0.h = vmpy(v0.h,r0.h):<<1:sat } 1866 1867// V6_vmpyhus 1868// Vdd32.w=vmpy(Vu32.h,Vv32.uh) 1869 v1:0.w=vmpy(v0.h,v0.uh) 1870# CHECK-NEXT: 1c20c040 { v1:0.w = vmpy(v0.h,v0.uh) } 1871 1872// V6_vmpyhus_acc 1873// Vxx32.w+=vmpy(Vu32.h,Vv32.uh) 1874 v1:0.w+=vmpy(v0.h,v0.uh) 1875# CHECK-NEXT: 1c20e020 { v1:0.w += vmpy(v0.h,v0.uh) } 1876 1877// V6_vmpyhv 1878// Vdd32.w=vmpy(Vu32.h,Vv32.h) 1879 v1:0.w=vmpy(v0.h,v0.h) 1880# CHECK-NEXT: 1c00c0e0 { v1:0.w = vmpy(v0.h,v0.h) } 1881 1882// V6_vmpyhv_acc 1883// Vxx32.w+=vmpy(Vu32.h,Vv32.h) 1884 v1:0.w+=vmpy(v0.h,v0.h) 1885# CHECK-NEXT: 1c00e0e0 { v1:0.w += vmpy(v0.h,v0.h) } 1886 1887// V6_vmpyhvsrs 1888// Vd32.h=vmpy(Vu32.h,Vv32.h):<<1:rnd:sat 1889 v0.h=vmpy(v0.h,v0.h):<<1:rnd:sat 1890# CHECK-NEXT: 1c20c020 { v0.h = vmpy(v0.h,v0.h):<<1:rnd:sat } 1891 1892// V6_vmpyieoh 1893// Vd32.w=vmpyieo(Vu32.h,Vv32.h) 1894 v0.w=vmpyieo(v0.h,v0.h) 1895# CHECK-NEXT: 1f60c000 { v0.w = vmpyieo(v0.h,v0.h) } 1896 1897// V6_vmpyiewh_acc 1898// Vx32.w+=vmpyie(Vu32.w,Vv32.h) 1899 v0.w+=vmpyie(v0.w,v0.h) 1900# CHECK-NEXT: 1c40e000 { v0.w += vmpyie(v0.w,v0.h) } 1901 1902// V6_vmpyiewuh 1903// Vd32.w=vmpyie(Vu32.w,Vv32.uh) 1904 v0.w=vmpyie(v0.w,v0.uh) 1905# CHECK-NEXT: 1fc0c000 { v0.w = vmpyie(v0.w,v0.uh) } 1906 1907// V6_vmpyiewuh_acc 1908// Vx32.w+=vmpyie(Vu32.w,Vv32.uh) 1909 v0.w+=vmpyie(v0.w,v0.uh) 1910# CHECK-NEXT: 1c20e0a0 { v0.w += vmpyie(v0.w,v0.uh) } 1911 1912// V6_vmpyih 1913// Vd32.h=vmpyi(Vu32.h,Vv32.h) 1914 v0.h=vmpyi(v0.h,v0.h) 1915# CHECK-NEXT: 1c20c080 { v0.h = vmpyi(v0.h,v0.h) } 1916 1917// V6_vmpyih_acc 1918// Vx32.h+=vmpyi(Vu32.h,Vv32.h) 1919 v0.h+=vmpyi(v0.h,v0.h) 1920# CHECK-NEXT: 1c20e080 { v0.h += vmpyi(v0.h,v0.h) } 1921 1922// V6_vmpyihb 1923// Vd32.h=vmpyi(Vu32.h,Rt32.b) 1924 v0.h=vmpyi(v0.h,r0.b) 1925# CHECK-NEXT: 1960c000 { v0.h = vmpyi(v0.h,r0.b) } 1926 1927// V6_vmpyihb_acc 1928// Vx32.h+=vmpyi(Vu32.h,Rt32.b) 1929 v0.h+=vmpyi(v0.h,r0.b) 1930# CHECK-NEXT: 1960e020 { v0.h += vmpyi(v0.h,r0.b) } 1931 1932// V6_vmpyiowh 1933// Vd32.w=vmpyio(Vu32.w,Vv32.h) 1934 v0.w=vmpyio(v0.w,v0.h) 1935# CHECK-NEXT: 1fc0c020 { v0.w = vmpyio(v0.w,v0.h) } 1936 1937// V6_vmpyiwb 1938// Vd32.w=vmpyi(Vu32.w,Rt32.b) 1939 v0.w=vmpyi(v0.w,r0.b) 1940# CHECK-NEXT: 19a0c000 { v0.w = vmpyi(v0.w,r0.b) } 1941 1942// V6_vmpyiwb_acc 1943// Vx32.w+=vmpyi(Vu32.w,Rt32.b) 1944 v0.w+=vmpyi(v0.w,r0.b) 1945# CHECK-NEXT: 1940e040 { v0.w += vmpyi(v0.w,r0.b) } 1946 1947// V6_vmpyiwh 1948// Vd32.w=vmpyi(Vu32.w,Rt32.h) 1949 v0.w=vmpyi(v0.w,r0.h) 1950# CHECK-NEXT: 1980c0e0 { v0.w = vmpyi(v0.w,r0.h) } 1951 1952// V6_vmpyiwh_acc 1953// Vx32.w+=vmpyi(Vu32.w,Rt32.h) 1954 v0.w+=vmpyi(v0.w,r0.h) 1955# CHECK-NEXT: 1940e060 { v0.w += vmpyi(v0.w,r0.h) } 1956 1957// V6_vmpyiwub 1958// Vd32.w=vmpyi(Vu32.w,Rt32.ub) 1959 v0.w=vmpyi(v0.w,r0.ub) 1960# CHECK-NEXT: 1980c0c0 { v0.w = vmpyi(v0.w,r0.ub) } 1961 1962// V6_vmpyiwub_acc 1963// Vx32.w+=vmpyi(Vu32.w,Rt32.ub) 1964 v0.w+=vmpyi(v0.w,r0.ub) 1965# CHECK-NEXT: 1980e020 { v0.w += vmpyi(v0.w,r0.ub) } 1966 1967// V6_vmpyowh 1968// Vd32.w=vmpyo(Vu32.w,Vv32.h):<<1:sat 1969 v0.w=vmpyo(v0.w,v0.h):<<1:sat 1970# CHECK-NEXT: 1fe0c0e0 { v0.w = vmpyo(v0.w,v0.h):<<1:sat } 1971 1972// V6_vmpyowh_64_acc 1973// Vxx32+=vmpyo(Vu32.w,Vv32.h) 1974 v1:0+=vmpyo(v0.w,v0.h) 1975# CHECK-NEXT: 1c20e060 { v1:0 += vmpyo(v0.w,v0.h) } 1976 1977// V6_vmpyowh_rnd 1978// Vd32.w=vmpyo(Vu32.w,Vv32.h):<<1:rnd:sat 1979 v0.w=vmpyo(v0.w,v0.h):<<1:rnd:sat 1980# CHECK-NEXT: 1f40c000 { v0.w = vmpyo(v0.w,v0.h):<<1:rnd:sat } 1981 1982// V6_vmpyowh_rnd_sacc 1983// Vx32.w+=vmpyo(Vu32.w,Vv32.h):<<1:rnd:sat:shift 1984 v0.w+=vmpyo(v0.w,v0.h):<<1:rnd:sat:shift 1985# CHECK-NEXT: 1c20e0e0 { v0.w += vmpyo(v0.w,v0.h):<<1:rnd:sat:shift } 1986 1987// V6_vmpyowh_sacc 1988// Vx32.w+=vmpyo(Vu32.w,Vv32.h):<<1:sat:shift 1989 v0.w+=vmpyo(v0.w,v0.h):<<1:sat:shift 1990# CHECK-NEXT: 1c20e0c0 { v0.w += vmpyo(v0.w,v0.h):<<1:sat:shift } 1991 1992// V6_vmpyub 1993// Vdd32.uh=vmpy(Vu32.ub,Rt32.ub) 1994 v1:0.uh=vmpy(v0.ub,r0.ub) 1995# CHECK-NEXT: 19c0c000 { v1:0.uh = vmpy(v0.ub,r0.ub) } 1996 1997// V6_vmpyub_acc 1998// Vxx32.uh+=vmpy(Vu32.ub,Rt32.ub) 1999 v1:0.uh+=vmpy(v0.ub,r0.ub) 2000# CHECK-NEXT: 1980e000 { v1:0.uh += vmpy(v0.ub,r0.ub) } 2001 2002// V6_vmpyubv 2003// Vdd32.uh=vmpy(Vu32.ub,Vv32.ub) 2004 v1:0.uh=vmpy(v0.ub,v0.ub) 2005# CHECK-NEXT: 1c00c0a0 { v1:0.uh = vmpy(v0.ub,v0.ub) } 2006 2007// V6_vmpyubv_acc 2008// Vxx32.uh+=vmpy(Vu32.ub,Vv32.ub) 2009 v1:0.uh+=vmpy(v0.ub,v0.ub) 2010# CHECK-NEXT: 1c00e0a0 { v1:0.uh += vmpy(v0.ub,v0.ub) } 2011 2012// V6_vmpyuh 2013// Vdd32.uw=vmpy(Vu32.uh,Rt32.uh) 2014 v1:0.uw=vmpy(v0.uh,r0.uh) 2015# CHECK-NEXT: 1940c060 { v1:0.uw = vmpy(v0.uh,r0.uh) } 2016 2017// V6_vmpyuh_acc 2018// Vxx32.uw+=vmpy(Vu32.uh,Rt32.uh) 2019 v1:0.uw+=vmpy(v0.uh,r0.uh) 2020# CHECK-NEXT: 1940e020 { v1:0.uw += vmpy(v0.uh,r0.uh) } 2021 2022// V6_vmpyuhe 2023// Vd32.uw=vmpye(Vu32.uh,Rt32.uh) 2024 v0.uw=vmpye(v0.uh,r0.uh) 2025# CHECK-NEXT: 1960c040 { v0.uw = vmpye(v0.uh,r0.uh) } 2026 2027// V6_vmpyuhe_acc 2028// Vx32.uw+=vmpye(Vu32.uh,Rt32.uh) 2029 v0.uw+=vmpye(v0.uh,r0.uh) 2030# CHECK-NEXT: 1980e060 { v0.uw += vmpye(v0.uh,r0.uh) } 2031 2032// V6_vmpyuhv 2033// Vdd32.uw=vmpy(Vu32.uh,Vv32.uh) 2034 v1:0.uw=vmpy(v0.uh,v0.uh) 2035# CHECK-NEXT: 1c20c000 { v1:0.uw = vmpy(v0.uh,v0.uh) } 2036 2037// V6_vmpyuhv_acc 2038// Vxx32.uw+=vmpy(Vu32.uh,Vv32.uh) 2039 v1:0.uw+=vmpy(v0.uh,v0.uh) 2040# CHECK-NEXT: 1c20e000 { v1:0.uw += vmpy(v0.uh,v0.uh) } 2041 2042// V6_vmux 2043// Vd32=vmux(Qt4,Vu32,Vv32) 2044 v0=vmux(q0,v0,v0) 2045# CHECK-NEXT: 1ee0e000 { v0 = vmux(q0,v0,v0) } 2046 2047// V6_vnavgb 2048// Vd32.b=vnavg(Vu32.b,Vv32.b) 2049 v0.b=vnavg(v0.b,v0.b) 2050# CHECK-NEXT: 1f00e0c0 { v0.b = vnavg(v0.b,v0.b) } 2051 2052// V6_vnavgh 2053// Vd32.h=vnavg(Vu32.h,Vv32.h) 2054 v0.h=vnavg(v0.h,v0.h) 2055# CHECK-NEXT: 1ce0c020 { v0.h = vnavg(v0.h,v0.h) } 2056 2057// V6_vnavgub 2058// Vd32.b=vnavg(Vu32.ub,Vv32.ub) 2059 v0.b=vnavg(v0.ub,v0.ub) 2060# CHECK-NEXT: 1ce0c000 { v0.b = vnavg(v0.ub,v0.ub) } 2061 2062// V6_vnavgw 2063// Vd32.w=vnavg(Vu32.w,Vv32.w) 2064 v0.w=vnavg(v0.w,v0.w) 2065# CHECK-NEXT: 1ce0c040 { v0.w = vnavg(v0.w,v0.w) } 2066 2067// V6_vnccombine 2068// if (!Ps4) Vdd32=vcombine(Vu32,Vv32) 2069 if (!p0) v1:0=vcombine(v0,v0) 2070# CHECK-NEXT: 1a40c000 { if (!p0) v1:0 = vcombine(v0,v0) } 2071 2072// V6_vncmov 2073// if (!Ps4) Vd32=Vu32 2074 if (!p0) v0=v0 2075# CHECK-NEXT: 1a20c000 { if (!p0) v0 = v0 } 2076 2077// V6_vnormamth 2078// Vd32.h=vnormamt(Vu32.h) 2079 v0.h=vnormamt(v0.h) 2080# CHECK-NEXT: 1e03c0a0 { v0.h = vnormamt(v0.h) } 2081 2082// V6_vnormamtw 2083// Vd32.w=vnormamt(Vu32.w) 2084 v0.w=vnormamt(v0.w) 2085# CHECK-NEXT: 1e03c080 { v0.w = vnormamt(v0.w) } 2086 2087// V6_vnot 2088// Vd32=vnot(Vu32) 2089 v0=vnot(v0) 2090# CHECK-NEXT: 1e00c080 { v0 = vnot(v0) } 2091 2092// V6_vor 2093// Vd32=vor(Vu32,Vv32) 2094 v0=vor(v0,v0) 2095# CHECK-NEXT: 1c20c0c0 { v0 = vor(v0,v0) } 2096 2097// V6_vpackeb 2098// Vd32.b=vpacke(Vu32.h,Vv32.h) 2099 v0.b=vpacke(v0.h,v0.h) 2100# CHECK-NEXT: 1fc0c040 { v0.b = vpacke(v0.h,v0.h) } 2101 2102// V6_vpackeh 2103// Vd32.h=vpacke(Vu32.w,Vv32.w) 2104 v0.h=vpacke(v0.w,v0.w) 2105# CHECK-NEXT: 1fc0c060 { v0.h = vpacke(v0.w,v0.w) } 2106 2107// V6_vpackhb_sat 2108// Vd32.b=vpack(Vu32.h,Vv32.h):sat 2109 v0.b=vpack(v0.h,v0.h):sat 2110# CHECK-NEXT: 1fc0c0c0 { v0.b = vpack(v0.h,v0.h):sat } 2111 2112// V6_vpackhub_sat 2113// Vd32.ub=vpack(Vu32.h,Vv32.h):sat 2114 v0.ub=vpack(v0.h,v0.h):sat 2115# CHECK-NEXT: 1fc0c0a0 { v0.ub = vpack(v0.h,v0.h):sat } 2116 2117// V6_vpackob 2118// Vd32.b=vpacko(Vu32.h,Vv32.h) 2119 v0.b=vpacko(v0.h,v0.h) 2120# CHECK-NEXT: 1fe0c020 { v0.b = vpacko(v0.h,v0.h) } 2121 2122// V6_vpackoh 2123// Vd32.h=vpacko(Vu32.w,Vv32.w) 2124 v0.h=vpacko(v0.w,v0.w) 2125# CHECK-NEXT: 1fe0c040 { v0.h = vpacko(v0.w,v0.w) } 2126 2127// V6_vpackwh_sat 2128// Vd32.h=vpack(Vu32.w,Vv32.w):sat 2129 v0.h=vpack(v0.w,v0.w):sat 2130# CHECK-NEXT: 1fe0c000 { v0.h = vpack(v0.w,v0.w):sat } 2131 2132// V6_vpackwuh_sat 2133// Vd32.uh=vpack(Vu32.w,Vv32.w):sat 2134 v0.uh=vpack(v0.w,v0.w):sat 2135# CHECK-NEXT: 1fc0c0e0 { v0.uh = vpack(v0.w,v0.w):sat } 2136 2137// V6_vpopcounth 2138// Vd32.h=vpopcount(Vu32.h) 2139 v0.h=vpopcount(v0.h) 2140# CHECK-NEXT: 1e02c0c0 { v0.h = vpopcount(v0.h) } 2141 2142// V6_vprefixqb 2143// Vd32.b=prefixsum(Qv4) 2144 v0.b=prefixsum(q0) 2145# CHECK-NEXT: 1e03e040 { v0.b = prefixsum(q0) } 2146 2147// V6_vprefixqh 2148// Vd32.h=prefixsum(Qv4) 2149 v0.h=prefixsum(q0) 2150# CHECK-NEXT: 1e03e140 { v0.h = prefixsum(q0) } 2151 2152// V6_vprefixqw 2153// Vd32.w=prefixsum(Qv4) 2154 v0.w=prefixsum(q0) 2155# CHECK-NEXT: 1e03e240 { v0.w = prefixsum(q0) } 2156 2157// V6_vrdelta 2158// Vd32=vrdelta(Vu32,Vv32) 2159 v0=vrdelta(v0,v0) 2160# CHECK-NEXT: 1f20c060 { v0 = vrdelta(v0,v0) } 2161 2162// V6_vrmpybus 2163// Vd32.w=vrmpy(Vu32.ub,Rt32.b) 2164 v0.w=vrmpy(v0.ub,r0.b) 2165# CHECK-NEXT: 1900c080 { v0.w = vrmpy(v0.ub,r0.b) } 2166 2167// V6_vrmpybus_acc 2168// Vx32.w+=vrmpy(Vu32.ub,Rt32.b) 2169 v0.w+=vrmpy(v0.ub,r0.b) 2170# CHECK-NEXT: 1900e0a0 { v0.w += vrmpy(v0.ub,r0.b) } 2171 2172// V6_vrmpybusi 2173// Vdd32.w=vrmpy(Vuu32.ub,Rt32.b,#u1) 2174 v1:0.w=vrmpy(v1:0.ub,r0.b,#0) 2175# CHECK-NEXT: 1940c080 { v1:0.w = vrmpy(v1:0.ub,r0.b,#0) } 2176 2177// V6_vrmpybusi_acc 2178// Vxx32.w+=vrmpy(Vuu32.ub,Rt32.b,#u1) 2179 v1:0.w+=vrmpy(v1:0.ub,r0.b,#0) 2180# CHECK-NEXT: 1940e080 { v1:0.w += vrmpy(v1:0.ub,r0.b,#0) } 2181 2182// V6_vrmpybusv 2183// Vd32.w=vrmpy(Vu32.ub,Vv32.b) 2184 v0.w=vrmpy(v0.ub,v0.b) 2185# CHECK-NEXT: 1c00c040 { v0.w = vrmpy(v0.ub,v0.b) } 2186 2187// V6_vrmpybusv_acc 2188// Vx32.w+=vrmpy(Vu32.ub,Vv32.b) 2189 v0.w+=vrmpy(v0.ub,v0.b) 2190# CHECK-NEXT: 1c00e040 { v0.w += vrmpy(v0.ub,v0.b) } 2191 2192// V6_vrmpybv 2193// Vd32.w=vrmpy(Vu32.b,Vv32.b) 2194 v0.w=vrmpy(v0.b,v0.b) 2195# CHECK-NEXT: 1c00c020 { v0.w = vrmpy(v0.b,v0.b) } 2196 2197// V6_vrmpybv_acc 2198// Vx32.w+=vrmpy(Vu32.b,Vv32.b) 2199 v0.w+=vrmpy(v0.b,v0.b) 2200# CHECK-NEXT: 1c00e020 { v0.w += vrmpy(v0.b,v0.b) } 2201 2202// V6_vrmpyub 2203// Vd32.uw=vrmpy(Vu32.ub,Rt32.ub) 2204 v0.uw=vrmpy(v0.ub,r0.ub) 2205# CHECK-NEXT: 1900c060 { v0.uw = vrmpy(v0.ub,r0.ub) } 2206 2207// V6_vrmpyub_acc 2208// Vx32.uw+=vrmpy(Vu32.ub,Rt32.ub) 2209 v0.uw+=vrmpy(v0.ub,r0.ub) 2210# CHECK-NEXT: 1900e080 { v0.uw += vrmpy(v0.ub,r0.ub) } 2211 2212// V6_vrmpyubi 2213// Vdd32.uw=vrmpy(Vuu32.ub,Rt32.ub,#u1) 2214 v1:0.uw=vrmpy(v1:0.ub,r0.ub,#0) 2215# CHECK-NEXT: 19a0c0c0 { v1:0.uw = vrmpy(v1:0.ub,r0.ub,#0) } 2216 2217// V6_vrmpyubi_acc 2218// Vxx32.uw+=vrmpy(Vuu32.ub,Rt32.ub,#u1) 2219 v1:0.uw+=vrmpy(v1:0.ub,r0.ub,#0) 2220# CHECK-NEXT: 1960e0c0 { v1:0.uw += vrmpy(v1:0.ub,r0.ub,#0) } 2221 2222// V6_vrmpyubv 2223// Vd32.uw=vrmpy(Vu32.ub,Vv32.ub) 2224 v0.uw=vrmpy(v0.ub,v0.ub) 2225# CHECK-NEXT: 1c00c000 { v0.uw = vrmpy(v0.ub,v0.ub) } 2226 2227// V6_vrmpyubv_acc 2228// Vx32.uw+=vrmpy(Vu32.ub,Vv32.ub) 2229 v0.uw+=vrmpy(v0.ub,v0.ub) 2230# CHECK-NEXT: 1c00e000 { v0.uw += vrmpy(v0.ub,v0.ub) } 2231 2232// V6_vrmpyzbb_rt 2233// Vdddd32.w=vrmpyz(Vu32.b,Rt8.b) 2234 v3:0.w=vrmpyz(v0.b,r0.b) 2235# CHECK-NEXT: 19e8c000 { v3:0.w = vrmpyz(v0.b,r0.b) } 2236 2237// V6_vrmpyzbb_rt_acc 2238// Vyyyy32.w+=vrmpyz(Vu32.b,Rt8.b) 2239 v3:0.w+=vrmpyz(v0.b,r0.b) 2240# CHECK-NEXT: 19c0e040 { v3:0.w += vrmpyz(v0.b,r0.b) } 2241 2242// V6_vrmpyzbb_rx 2243// Vdddd32.w=vrmpyz(Vu32.b,Rx8.b++) 2244 v3:0.w=vrmpyz(v0.b,r0.b++) 2245# CHECK-NEXT: 19e0c000 { v3:0.w = vrmpyz(v0.b,r0.b++) } 2246 2247// V6_vrmpyzbb_rx_acc 2248// Vyyyy32.w+=vrmpyz(Vu32.b,Rx8.b++) 2249 v3:0.w+=vrmpyz(v0.b,r0.b++) 2250# CHECK-NEXT: 19c8e040 { v3:0.w += vrmpyz(v0.b,r0.b++) } 2251 2252// V6_vrmpyzbub_rt 2253// Vdddd32.w=vrmpyz(Vu32.b,Rt8.ub) 2254 v3:0.w=vrmpyz(v0.b,r0.ub) 2255# CHECK-NEXT: 19f8c040 { v3:0.w = vrmpyz(v0.b,r0.ub) } 2256 2257// V6_vrmpyzbub_rt_acc 2258// Vyyyy32.w+=vrmpyz(Vu32.b,Rt8.ub) 2259 v3:0.w+=vrmpyz(v0.b,r0.ub) 2260# CHECK-NEXT: 19d0e020 { v3:0.w += vrmpyz(v0.b,r0.ub) } 2261 2262// V6_vrmpyzbub_rx 2263// Vdddd32.w=vrmpyz(Vu32.b,Rx8.ub++) 2264 v3:0.w=vrmpyz(v0.b,r0.ub++) 2265# CHECK-NEXT: 19f0c040 { v3:0.w = vrmpyz(v0.b,r0.ub++) } 2266 2267// V6_vrmpyzbub_rx_acc 2268// Vyyyy32.w+=vrmpyz(Vu32.b,Rx8.ub++) 2269 v3:0.w+=vrmpyz(v0.b,r0.ub++) 2270# CHECK-NEXT: 19d8e020 { v3:0.w += vrmpyz(v0.b,r0.ub++) } 2271 2272// V6_vrmpyzcb_rt 2273// Vdddd32.w=vr16mpyz(Vu32.c,Rt8.b) 2274 v3:0.w=vr16mpyz(v0.c,r0.b) 2275# CHECK-NEXT: 19e8c020 { v3:0.w = vr16mpyz(v0.c,r0.b) } 2276 2277// V6_vrmpyzcb_rt_acc 2278// Vyyyy32.w+=vr16mpyz(Vu32.c,Rt8.b) 2279 v3:0.w+=vr16mpyz(v0.c,r0.b) 2280# CHECK-NEXT: 19c0e060 { v3:0.w += vr16mpyz(v0.c,r0.b) } 2281 2282// V6_vrmpyzcb_rx 2283// Vdddd32.w=vr16mpyz(Vu32.c,Rx8.b++) 2284 v3:0.w=vr16mpyz(v0.c,r0.b++) 2285# CHECK-NEXT: 19e0c020 { v3:0.w = vr16mpyz(v0.c,r0.b++) } 2286 2287// V6_vrmpyzcb_rx_acc 2288// Vyyyy32.w+=vr16mpyz(Vu32.c,Rx8.b++) 2289 v3:0.w+=vr16mpyz(v0.c,r0.b++) 2290# CHECK-NEXT: 19c8e060 { v3:0.w += vr16mpyz(v0.c,r0.b++) } 2291 2292// V6_vrmpyzcbs_rt 2293// Vdddd32.w=vr16mpyzs(Vu32.c,Rt8.b) 2294 v3:0.w=vr16mpyzs(v0.c,r0.b) 2295# CHECK-NEXT: 19e8c040 { v3:0.w = vr16mpyzs(v0.c,r0.b) } 2296 2297// V6_vrmpyzcbs_rt_acc 2298// Vyyyy32.w+=vr16mpyzs(Vu32.c,Rt8.b) 2299 v3:0.w+=vr16mpyzs(v0.c,r0.b) 2300# CHECK-NEXT: 19c0e020 { v3:0.w += vr16mpyzs(v0.c,r0.b) } 2301 2302// V6_vrmpyzcbs_rx 2303// Vdddd32.w=vr16mpyzs(Vu32.c,Rx8.b++) 2304 v3:0.w=vr16mpyzs(v0.c,r0.b++) 2305# CHECK-NEXT: 19e0c040 { v3:0.w = vr16mpyzs(v0.c,r0.b++) } 2306 2307// V6_vrmpyzcbs_rx_acc 2308// Vyyyy32.w+=vr16mpyzs(Vu32.c,Rx8.b++) 2309 v3:0.w+=vr16mpyzs(v0.c,r0.b++) 2310# CHECK-NEXT: 19c8e020 { v3:0.w += vr16mpyzs(v0.c,r0.b++) } 2311 2312// V6_vrmpyznb_rt 2313// Vdddd32.w=vr8mpyz(Vu32.n,Rt8.b) 2314 v3:0.w=vr8mpyz(v0.n,r0.b) 2315# CHECK-NEXT: 19f8c000 { v3:0.w = vr8mpyz(v0.n,r0.b) } 2316 2317// V6_vrmpyznb_rt_acc 2318// Vyyyy32.w+=vr8mpyz(Vu32.n,Rt8.b) 2319 v3:0.w+=vr8mpyz(v0.n,r0.b) 2320# CHECK-NEXT: 19d0e040 { v3:0.w += vr8mpyz(v0.n,r0.b) } 2321 2322// V6_vrmpyznb_rx 2323// Vdddd32.w=vr8mpyz(Vu32.n,Rx8.b++) 2324 v3:0.w=vr8mpyz(v0.n,r0.b++) 2325# CHECK-NEXT: 19f0c000 { v3:0.w = vr8mpyz(v0.n,r0.b++) } 2326 2327// V6_vrmpyznb_rx_acc 2328// Vyyyy32.w+=vr8mpyz(Vu32.n,Rx8.b++) 2329 v3:0.w+=vr8mpyz(v0.n,r0.b++) 2330# CHECK-NEXT: 19d8e040 { v3:0.w += vr8mpyz(v0.n,r0.b++) } 2331 2332// V6_vror 2333// Vd32=vror(Vu32,Rt32) 2334 v0=vror(v0,r0) 2335# CHECK-NEXT: 1960c020 { v0 = vror(v0,r0) } 2336 2337// V6_vrotr 2338// Vd32.uw=vrotr(Vu32.uw,Vv32.uw) 2339 v0.uw=vrotr(v0.uw,v0.uw) 2340# CHECK-NEXT: 1a80e0e0 { v0.uw = vrotr(v0.uw,v0.uw) } 2341 2342// V6_vroundhb 2343// Vd32.b=vround(Vu32.h,Vv32.h):sat 2344 v0.b=vround(v0.h,v0.h):sat 2345# CHECK-NEXT: 1f60c0c0 { v0.b = vround(v0.h,v0.h):sat } 2346 2347// V6_vroundhub 2348// Vd32.ub=vround(Vu32.h,Vv32.h):sat 2349 v0.ub=vround(v0.h,v0.h):sat 2350# CHECK-NEXT: 1f60c0e0 { v0.ub = vround(v0.h,v0.h):sat } 2351 2352// V6_vrounduhub 2353// Vd32.ub=vround(Vu32.uh,Vv32.uh):sat 2354 v0.ub=vround(v0.uh,v0.uh):sat 2355# CHECK-NEXT: 1fe0c060 { v0.ub = vround(v0.uh,v0.uh):sat } 2356 2357// V6_vrounduwuh 2358// Vd32.uh=vround(Vu32.uw,Vv32.uw):sat 2359 v0.uh=vround(v0.uw,v0.uw):sat 2360# CHECK-NEXT: 1fe0c080 { v0.uh = vround(v0.uw,v0.uw):sat } 2361 2362// V6_vroundwh 2363// Vd32.h=vround(Vu32.w,Vv32.w):sat 2364 v0.h=vround(v0.w,v0.w):sat 2365# CHECK-NEXT: 1f60c080 { v0.h = vround(v0.w,v0.w):sat } 2366 2367// V6_vroundwuh 2368// Vd32.uh=vround(Vu32.w,Vv32.w):sat 2369 v0.uh=vround(v0.w,v0.w):sat 2370# CHECK-NEXT: 1f60c0a0 { v0.uh = vround(v0.w,v0.w):sat } 2371 2372// V6_vrsadubi 2373// Vdd32.uw=vrsad(Vuu32.ub,Rt32.ub,#u1) 2374 v1:0.uw=vrsad(v1:0.ub,r0.ub,#0) 2375# CHECK-NEXT: 1940c0c0 { v1:0.uw = vrsad(v1:0.ub,r0.ub,#0) } 2376 2377// V6_vrsadubi_acc 2378// Vxx32.uw+=vrsad(Vuu32.ub,Rt32.ub,#u1) 2379 v1:0.uw+=vrsad(v1:0.ub,r0.ub,#0) 2380# CHECK-NEXT: 1940e0c0 { v1:0.uw += vrsad(v1:0.ub,r0.ub,#0) } 2381 2382// V6_vsatdw 2383// Vd32.w=vsatdw(Vu32.w,Vv32.w) 2384 v0.w=vsatdw(v0.w,v0.w) 2385# CHECK-NEXT: 1d80e0e0 { v0.w = vsatdw(v0.w,v0.w) } 2386 2387// V6_vsathub 2388// Vd32.ub=vsat(Vu32.h,Vv32.h) 2389 v0.ub=vsat(v0.h,v0.h) 2390# CHECK-NEXT: 1f60c040 { v0.ub = vsat(v0.h,v0.h) } 2391 2392// V6_vsatuwuh 2393// Vd32.uh=vsat(Vu32.uw,Vv32.uw) 2394 v0.uh=vsat(v0.uw,v0.uw) 2395# CHECK-NEXT: 1f20c0c0 { v0.uh = vsat(v0.uw,v0.uw) } 2396 2397// V6_vsatwh 2398// Vd32.h=vsat(Vu32.w,Vv32.w) 2399 v0.h=vsat(v0.w,v0.w) 2400# CHECK-NEXT: 1f60c060 { v0.h = vsat(v0.w,v0.w) } 2401 2402// V6_vsb 2403// Vdd32.h=vsxt(Vu32.b) 2404 v1:0.h=vsxt(v0.b) 2405# CHECK-NEXT: 1e02c060 { v1:0.h = vsxt(v0.b) } 2406 2407// V6_vscattermh 2408// vscatter(Rt32,Mu2,Vv32.h).h=Vw32 2409 vscatter(r0,m0,v0.h).h=v0 2410# CHECK-NEXT: 2f20c020 { vscatter(r0,m0,v0.h).h = v0 } 2411 2412// V6_vscattermh_add 2413// vscatter(Rt32,Mu2,Vv32.h).h+=Vw32 2414 vscatter(r0,m0,v0.h).h+=v0 2415# CHECK-NEXT: 2f20c0a0 { vscatter(r0,m0,v0.h).h += v0 } 2416 2417// V6_vscattermhq 2418// if (Qs4) vscatter(Rt32,Mu2,Vv32.h).h=Vw32 2419 if (q0) vscatter(r0,m0,v0.h).h=v0 2420# CHECK-NEXT: 2f80c080 { if (q0) vscatter(r0,m0,v0.h).h = v0 } 2421 2422// V6_vscattermhw 2423// vscatter(Rt32,Mu2,Vvv32.w).h=Vw32 2424 vscatter(r0,m0,v1:0.w).h=v0 2425# CHECK-NEXT: 2f20c040 { vscatter(r0,m0,v1:0.w).h = v0 } 2426 2427// V6_vscattermhw_add 2428// vscatter(Rt32,Mu2,Vvv32.w).h+=Vw32 2429 vscatter(r0,m0,v1:0.w).h+=v0 2430# CHECK-NEXT: 2f20c0c0 { vscatter(r0,m0,v1:0.w).h += v0 } 2431 2432// V6_vscattermhwq 2433// if (Qs4) vscatter(Rt32,Mu2,Vvv32.w).h=Vw32 2434 if (q0) vscatter(r0,m0,v1:0.w).h=v0 2435# CHECK-NEXT: 2fa0c000 { if (q0) vscatter(r0,m0,v1:0.w).h = v0 } 2436 2437// V6_vscattermw 2438// vscatter(Rt32,Mu2,Vv32.w).w=Vw32 2439 vscatter(r0,m0,v0.w).w=v0 2440# CHECK-NEXT: 2f20c000 { vscatter(r0,m0,v0.w).w = v0 } 2441 2442// V6_vscattermw_add 2443// vscatter(Rt32,Mu2,Vv32.w).w+=Vw32 2444 vscatter(r0,m0,v0.w).w+=v0 2445# CHECK-NEXT: 2f20c080 { vscatter(r0,m0,v0.w).w += v0 } 2446 2447// V6_vscattermwq 2448// if (Qs4) vscatter(Rt32,Mu2,Vv32.w).w=Vw32 2449 if (q0) vscatter(r0,m0,v0.w).w=v0 2450# CHECK-NEXT: 2f80c000 { if (q0) vscatter(r0,m0,v0.w).w = v0 } 2451 2452// V6_vsh 2453// Vdd32.w=vsxt(Vu32.h) 2454 v1:0.w=vsxt(v0.h) 2455# CHECK-NEXT: 1e02c080 { v1:0.w = vsxt(v0.h) } 2456 2457// V6_vshufeh 2458// Vd32.h=vshuffe(Vu32.h,Vv32.h) 2459 v0.h=vshuffe(v0.h,v0.h) 2460# CHECK-NEXT: 1f40c060 { v0.h = vshuffe(v0.h,v0.h) } 2461 2462// V6_vshuff 2463// vshuff(Vy32,Vx32,Rt32) 2464 vshuff(v0,v0,r0) 2465# CHECK-NEXT: 19e0e020 { vshuff(v0,v0,r0) } 2466 2467// V6_vshuffb 2468// Vd32.b=vshuff(Vu32.b) 2469 v0.b=vshuff(v0.b) 2470# CHECK-NEXT: 1e02c000 { v0.b = vshuff(v0.b) } 2471 2472// V6_vshuffeb 2473// Vd32.b=vshuffe(Vu32.b,Vv32.b) 2474 v0.b=vshuffe(v0.b,v0.b) 2475# CHECK-NEXT: 1f40c020 { v0.b = vshuffe(v0.b,v0.b) } 2476 2477// V6_vshuffh 2478// Vd32.h=vshuff(Vu32.h) 2479 v0.h=vshuff(v0.h) 2480# CHECK-NEXT: 1e01c0e0 { v0.h = vshuff(v0.h) } 2481 2482// V6_vshuffob 2483// Vd32.b=vshuffo(Vu32.b,Vv32.b) 2484 v0.b=vshuffo(v0.b,v0.b) 2485# CHECK-NEXT: 1f40c040 { v0.b = vshuffo(v0.b,v0.b) } 2486 2487// V6_vshuffvdd 2488// Vdd32=vshuff(Vu32,Vv32,Rt8) 2489 v1:0=vshuff(v0,v0,r0) 2490# CHECK-NEXT: 1b00e060 { v1:0 = vshuff(v0,v0,r0) } 2491 2492// V6_vshufoeb 2493// Vdd32.b=vshuffoe(Vu32.b,Vv32.b) 2494 v1:0.b=vshuffoe(v0.b,v0.b) 2495# CHECK-NEXT: 1f40c0c0 { v1:0.b = vshuffoe(v0.b,v0.b) } 2496 2497// V6_vshufoeh 2498// Vdd32.h=vshuffoe(Vu32.h,Vv32.h) 2499 v1:0.h=vshuffoe(v0.h,v0.h) 2500# CHECK-NEXT: 1f40c0a0 { v1:0.h = vshuffoe(v0.h,v0.h) } 2501 2502// V6_vshufoh 2503// Vd32.h=vshuffo(Vu32.h,Vv32.h) 2504 v0.h=vshuffo(v0.h,v0.h) 2505# CHECK-NEXT: 1f40c080 { v0.h = vshuffo(v0.h,v0.h) } 2506 2507// V6_vsubb 2508// Vd32.b=vsub(Vu32.b,Vv32.b) 2509 v0.b=vsub(v0.b,v0.b) 2510# CHECK-NEXT: 1c40c0a0 { v0.b = vsub(v0.b,v0.b) } 2511 2512// V6_vsubb_dv 2513// Vdd32.b=vsub(Vuu32.b,Vvv32.b) 2514 v1:0.b=vsub(v1:0.b,v1:0.b) 2515# CHECK-NEXT: 1c80c060 { v1:0.b = vsub(v1:0.b,v1:0.b) } 2516 2517// V6_vsubbnq 2518// if (!Qv4) Vx32.b-=Vu32.b 2519 if (!q0) v0.b-=v0.b 2520# CHECK-NEXT: 1e02e020 { if (!q0) v0.b -= v0.b } 2521 2522// V6_vsubbq 2523// if (Qv4) Vx32.b-=Vu32.b 2524 if (q0) v0.b-=v0.b 2525# CHECK-NEXT: 1e01e0c0 { if (q0) v0.b -= v0.b } 2526 2527// V6_vsubbsat 2528// Vd32.b=vsub(Vu32.b,Vv32.b):sat 2529 v0.b=vsub(v0.b,v0.b):sat 2530# CHECK-NEXT: 1f20c040 { v0.b = vsub(v0.b,v0.b):sat } 2531 2532// V6_vsubbsat_dv 2533// Vdd32.b=vsub(Vuu32.b,Vvv32.b):sat 2534 v1:0.b=vsub(v1:0.b,v1:0.b):sat 2535# CHECK-NEXT: 1ea0c020 { v1:0.b = vsub(v1:0.b,v1:0.b):sat } 2536 2537// V6_vsubcarry 2538// Vd32.w=vsub(Vu32.w,Vv32.w,Qx4):carry 2539 v0.w=vsub(v0.w,v0.w,q0):carry 2540# CHECK-NEXT: 1ca0e080 { v0.w = vsub(v0.w,v0.w,q0):carry } 2541 2542// V6_vsubcarryo 2543// Vd32.w,Qe4=vsub(Vu32.w,Vv32.w):carry 2544 v0.w,q0=vsub(v0.w,v0.w):carry 2545# CHECK-NEXT: 1da0e080 { v0.w,q0 = vsub(v0.w,v0.w):carry } 2546 2547// V6_vsubh 2548// Vd32.h=vsub(Vu32.h,Vv32.h) 2549 v0.h=vsub(v0.h,v0.h) 2550# CHECK-NEXT: 1c40c0c0 { v0.h = vsub(v0.h,v0.h) } 2551 2552// V6_vsubh_dv 2553// Vdd32.h=vsub(Vuu32.h,Vvv32.h) 2554 v1:0.h=vsub(v1:0.h,v1:0.h) 2555# CHECK-NEXT: 1c80c080 { v1:0.h = vsub(v1:0.h,v1:0.h) } 2556 2557// V6_vsubhnq 2558// if (!Qv4) Vx32.h-=Vu32.h 2559 if (!q0) v0.h-=v0.h 2560# CHECK-NEXT: 1e02e040 { if (!q0) v0.h -= v0.h } 2561 2562// V6_vsubhq 2563// if (Qv4) Vx32.h-=Vu32.h 2564 if (q0) v0.h-=v0.h 2565# CHECK-NEXT: 1e01e0e0 { if (q0) v0.h -= v0.h } 2566 2567// V6_vsubhsat 2568// Vd32.h=vsub(Vu32.h,Vv32.h):sat 2569 v0.h=vsub(v0.h,v0.h):sat 2570# CHECK-NEXT: 1c60c040 { v0.h = vsub(v0.h,v0.h):sat } 2571 2572// V6_vsubhsat_dv 2573// Vdd32.h=vsub(Vuu32.h,Vvv32.h):sat 2574 v1:0.h=vsub(v1:0.h,v1:0.h):sat 2575# CHECK-NEXT: 1ca0c000 { v1:0.h = vsub(v1:0.h,v1:0.h):sat } 2576 2577// V6_vsubhw 2578// Vdd32.w=vsub(Vu32.h,Vv32.h) 2579 v1:0.w=vsub(v0.h,v0.h) 2580# CHECK-NEXT: 1ca0c0e0 { v1:0.w = vsub(v0.h,v0.h) } 2581 2582// V6_vsububh 2583// Vdd32.h=vsub(Vu32.ub,Vv32.ub) 2584 v1:0.h=vsub(v0.ub,v0.ub) 2585# CHECK-NEXT: 1ca0c0a0 { v1:0.h = vsub(v0.ub,v0.ub) } 2586 2587// V6_vsububsat 2588// Vd32.ub=vsub(Vu32.ub,Vv32.ub):sat 2589 v0.ub=vsub(v0.ub,v0.ub):sat 2590# CHECK-NEXT: 1c60c000 { v0.ub = vsub(v0.ub,v0.ub):sat } 2591 2592// V6_vsububsat_dv 2593// Vdd32.ub=vsub(Vuu32.ub,Vvv32.ub):sat 2594 v1:0.ub=vsub(v1:0.ub,v1:0.ub):sat 2595# CHECK-NEXT: 1c80c0c0 { v1:0.ub = vsub(v1:0.ub,v1:0.ub):sat } 2596 2597// V6_vsubububb_sat 2598// Vd32.ub=vsub(Vu32.ub,Vv32.b):sat 2599 v0.ub=vsub(v0.ub,v0.b):sat 2600# CHECK-NEXT: 1ea0c0a0 { v0.ub = vsub(v0.ub,v0.b):sat } 2601 2602// V6_vsubuhsat 2603// Vd32.uh=vsub(Vu32.uh,Vv32.uh):sat 2604 v0.uh=vsub(v0.uh,v0.uh):sat 2605# CHECK-NEXT: 1c60c020 { v0.uh = vsub(v0.uh,v0.uh):sat } 2606 2607// V6_vsubuhsat_dv 2608// Vdd32.uh=vsub(Vuu32.uh,Vvv32.uh):sat 2609 v1:0.uh=vsub(v1:0.uh,v1:0.uh):sat 2610# CHECK-NEXT: 1c80c0e0 { v1:0.uh = vsub(v1:0.uh,v1:0.uh):sat } 2611 2612// V6_vsubuhw 2613// Vdd32.w=vsub(Vu32.uh,Vv32.uh) 2614 v1:0.w=vsub(v0.uh,v0.uh) 2615# CHECK-NEXT: 1ca0c0c0 { v1:0.w = vsub(v0.uh,v0.uh) } 2616 2617// V6_vsubuwsat 2618// Vd32.uw=vsub(Vu32.uw,Vv32.uw):sat 2619 v0.uw=vsub(v0.uw,v0.uw):sat 2620# CHECK-NEXT: 1fc0c080 { v0.uw = vsub(v0.uw,v0.uw):sat } 2621 2622// V6_vsubuwsat_dv 2623// Vdd32.uw=vsub(Vuu32.uw,Vvv32.uw):sat 2624 v1:0.uw=vsub(v1:0.uw,v1:0.uw):sat 2625# CHECK-NEXT: 1ea0c060 { v1:0.uw = vsub(v1:0.uw,v1:0.uw):sat } 2626 2627// V6_vsubw 2628// Vd32.w=vsub(Vu32.w,Vv32.w) 2629 v0.w=vsub(v0.w,v0.w) 2630# CHECK-NEXT: 1c40c0e0 { v0.w = vsub(v0.w,v0.w) } 2631 2632// V6_vsubw_dv 2633// Vdd32.w=vsub(Vuu32.w,Vvv32.w) 2634 v1:0.w=vsub(v1:0.w,v1:0.w) 2635# CHECK-NEXT: 1c80c0a0 { v1:0.w = vsub(v1:0.w,v1:0.w) } 2636 2637// V6_vsubwnq 2638// if (!Qv4) Vx32.w-=Vu32.w 2639 if (!q0) v0.w-=v0.w 2640# CHECK-NEXT: 1e02e060 { if (!q0) v0.w -= v0.w } 2641 2642// V6_vsubwq 2643// if (Qv4) Vx32.w-=Vu32.w 2644 if (q0) v0.w-=v0.w 2645# CHECK-NEXT: 1e02e000 { if (q0) v0.w -= v0.w } 2646 2647// V6_vsubwsat 2648// Vd32.w=vsub(Vu32.w,Vv32.w):sat 2649 v0.w=vsub(v0.w,v0.w):sat 2650# CHECK-NEXT: 1c60c060 { v0.w = vsub(v0.w,v0.w):sat } 2651 2652// V6_vsubwsat_dv 2653// Vdd32.w=vsub(Vuu32.w,Vvv32.w):sat 2654 v1:0.w=vsub(v1:0.w,v1:0.w):sat 2655# CHECK-NEXT: 1ca0c020 { v1:0.w = vsub(v1:0.w,v1:0.w):sat } 2656 2657// V6_vswap 2658// Vdd32=vswap(Qt4,Vu32,Vv32) 2659 v1:0=vswap(q0,v0,v0) 2660# CHECK-NEXT: 1ea0e000 { v1:0 = vswap(q0,v0,v0) } 2661 2662// V6_vtmpyb 2663// Vdd32.h=vtmpy(Vuu32.b,Rt32.b) 2664 v1:0.h=vtmpy(v1:0.b,r0.b) 2665# CHECK-NEXT: 1900c000 { v1:0.h = vtmpy(v1:0.b,r0.b) } 2666 2667// V6_vtmpyb_acc 2668// Vxx32.h+=vtmpy(Vuu32.b,Rt32.b) 2669 v1:0.h+=vtmpy(v1:0.b,r0.b) 2670# CHECK-NEXT: 1900e000 { v1:0.h += vtmpy(v1:0.b,r0.b) } 2671 2672// V6_vtmpybus 2673// Vdd32.h=vtmpy(Vuu32.ub,Rt32.b) 2674 v1:0.h=vtmpy(v1:0.ub,r0.b) 2675# CHECK-NEXT: 1900c020 { v1:0.h = vtmpy(v1:0.ub,r0.b) } 2676 2677// V6_vtmpybus_acc 2678// Vxx32.h+=vtmpy(Vuu32.ub,Rt32.b) 2679 v1:0.h+=vtmpy(v1:0.ub,r0.b) 2680# CHECK-NEXT: 1900e020 { v1:0.h += vtmpy(v1:0.ub,r0.b) } 2681 2682// V6_vtmpyhb 2683// Vdd32.w=vtmpy(Vuu32.h,Rt32.b) 2684 v1:0.w=vtmpy(v1:0.h,r0.b) 2685# CHECK-NEXT: 19a0c080 { v1:0.w = vtmpy(v1:0.h,r0.b) } 2686 2687// V6_vtmpyhb_acc 2688// Vxx32.w+=vtmpy(Vuu32.h,Rt32.b) 2689 v1:0.w+=vtmpy(v1:0.h,r0.b) 2690# CHECK-NEXT: 1900e040 { v1:0.w += vtmpy(v1:0.h,r0.b) } 2691 2692// V6_vunpackb 2693// Vdd32.h=vunpack(Vu32.b) 2694 v1:0.h=vunpack(v0.b) 2695# CHECK-NEXT: 1e01c040 { v1:0.h = vunpack(v0.b) } 2696 2697// V6_vunpackh 2698// Vdd32.w=vunpack(Vu32.h) 2699 v1:0.w=vunpack(v0.h) 2700# CHECK-NEXT: 1e01c060 { v1:0.w = vunpack(v0.h) } 2701 2702// V6_vunpackob 2703// Vxx32.h|=vunpacko(Vu32.b) 2704 v1:0.h|=vunpacko(v0.b) 2705# CHECK-NEXT: 1e00e000 { v1:0.h |= vunpacko(v0.b) } 2706 2707// V6_vunpackoh 2708// Vxx32.w|=vunpacko(Vu32.h) 2709 v1:0.w|=vunpacko(v0.h) 2710# CHECK-NEXT: 1e00e020 { v1:0.w |= vunpacko(v0.h) } 2711 2712// V6_vunpackub 2713// Vdd32.uh=vunpack(Vu32.ub) 2714 v1:0.uh=vunpack(v0.ub) 2715# CHECK-NEXT: 1e01c000 { v1:0.uh = vunpack(v0.ub) } 2716 2717// V6_vunpackuh 2718// Vdd32.uw=vunpack(Vu32.uh) 2719 v1:0.uw=vunpack(v0.uh) 2720# CHECK-NEXT: 1e01c020 { v1:0.uw = vunpack(v0.uh) } 2721 2722// V6_vwhist128 2723// vwhist128 2724 vwhist128 2725# CHECK-NEXT: 1e00e480 { vwhist128 } 2726 2727// V6_vwhist128m 2728// vwhist128(#u1) 2729 vwhist128(#0) 2730# CHECK-NEXT: 1e00e680 { vwhist128(#0) } 2731 2732// V6_vwhist128q 2733// vwhist128(Qv4) 2734 vwhist128(q0) 2735# CHECK-NEXT: 1e02e480 { vwhist128(q0) } 2736 2737// V6_vwhist128qm 2738// vwhist128(Qv4,#u1) 2739 vwhist128(q0,#0) 2740# CHECK-NEXT: 1e02e680 { vwhist128(q0,#0) } 2741 2742// V6_vwhist256 2743// vwhist256 2744 vwhist256 2745# CHECK-NEXT: 1e00e280 { vwhist256 } 2746 2747// V6_vwhist256_sat 2748// vwhist256:sat 2749 vwhist256:sat 2750# CHECK-NEXT: 1e00e380 { vwhist256:sat } 2751 2752// V6_vwhist256q 2753// vwhist256(Qv4) 2754 vwhist256(q0) 2755# CHECK-NEXT: 1e02e280 { vwhist256(q0) } 2756 2757// V6_vwhist256q_sat 2758// vwhist256(Qv4):sat 2759 vwhist256(q0):sat 2760# CHECK-NEXT: 1e02e380 { vwhist256(q0):sat } 2761 2762// V6_vxor 2763// Vd32=vxor(Vu32,Vv32) 2764 v0=vxor(v0,v0) 2765# CHECK-NEXT: 1c20c0e0 { v0 = vxor(v0,v0) } 2766 2767// V6_vzb 2768// Vdd32.uh=vzxt(Vu32.ub) 2769 v1:0.uh=vzxt(v0.ub) 2770# CHECK-NEXT: 1e02c020 { v1:0.uh = vzxt(v0.ub) } 2771 2772// V6_vzh 2773// Vdd32.uw=vzxt(Vu32.uh) 2774 v1:0.uw=vzxt(v0.uh) 2775# CHECK-NEXT: 1e02c040 { v1:0.uw = vzxt(v0.uh) } 2776 2777// V6_zLd_ai 2778// z=vmem(Rt32+#s4) 2779 z=vmem(r0+#0) 2780# CHECK-NEXT: 2c00c000 { z = vmem(r0+#0) } 2781 2782// V6_zLd_pi 2783// z=vmem(Rx32++#s3) 2784 z=vmem(r0++#0) 2785# CHECK-NEXT: 2d00c000 { z = vmem(r0++#0) } 2786 2787// V6_zLd_ppu 2788// z=vmem(Rx32++Mu2) 2789 z=vmem(r0++m0) 2790# CHECK-NEXT: 2d00c001 { z = vmem(r0++m0) } 2791 2792// V6_zLd_pred_ai 2793// if (Pv4) z=vmem(Rt32+#s4) 2794 if (p0) z=vmem(r0+#0) 2795# CHECK-NEXT: 2c80c000 { if (p0) z = vmem(r0+#0) } 2796 2797// V6_zLd_pred_pi 2798// if (Pv4) z=vmem(Rx32++#s3) 2799 if (p0) z=vmem(r0++#0) 2800# CHECK-NEXT: 2d80c000 { if (p0) z = vmem(r0++#0) } 2801 2802// V6_zLd_pred_ppu 2803// if (Pv4) z=vmem(Rx32++Mu2) 2804 if (p0) z=vmem(r0++m0) 2805# CHECK-NEXT: 2d80c001 { if (p0) z = vmem(r0++m0) } 2806 2807// V6_zextract 2808// Vd32=zextract(Rt32) 2809 v0=zextract(r0) 2810# CHECK-NEXT: 19a0c120 { v0 = zextract(r0) } 2811