1*9880d681SAndroid Build Coastguard Worker#RUN: llvm-mc -triple=hexagon -mcpu=hexagonv60 -filetype=obj %s | \ 2*9880d681SAndroid Build Coastguard Worker#RUN: llvm-objdump -triple=hexagon -mcpu=hexagonv60 -d - | \ 3*9880d681SAndroid Build Coastguard Worker#RUN: FileCheck %s 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker#CHECK: 1936ee37 { v23.w += vdmpy(v15:14.h,r22.uh,#1):sat } 6*9880d681SAndroid Build Coastguard Workerv23.w += vdmpy(v15:14.h,r22.uh,#1):sat 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker#CHECK: 193bf90f { v15.w += vdmpy(v25.h,r27.uh):sat } 9*9880d681SAndroid Build Coastguard Workerv15.w += vdmpy(v25.h,r27.uh):sat 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Worker#CHECK: 1902fcf0 { v17:16.h += vdmpy(v29:28.ub,r2.b) } 12*9880d681SAndroid Build Coastguard Workerv17:16.h += vdmpy(v29:28.ub,r2.b) 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Worker#CHECK: 190cffd1 { v17.h += vdmpy(v31.ub,r12.b) } 15*9880d681SAndroid Build Coastguard Workerv17.h += vdmpy(v31.ub,r12.b) 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker#CHECK: 1900f5ac { v12.w += vrmpy(v21.ub,r0.b) } 18*9880d681SAndroid Build Coastguard Workerv12.w += vrmpy(v21.ub,r0.b) 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Worker#CHECK: 1905fb86 { v6.uw += vrmpy(v27.ub,r5.ub) } 21*9880d681SAndroid Build Coastguard Workerv6.uw += vrmpy(v27.ub,r5.ub) 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Worker#CHECK: 191de570 { v16.w += vdmpy(v5.h,r29.b) } 24*9880d681SAndroid Build Coastguard Workerv16.w += vdmpy(v5.h,r29.b) 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Worker#CHECK: 191de846 { v7:6.w += vtmpy(v9:8.h,r29.b) } 27*9880d681SAndroid Build Coastguard Workerv7:6.w += vtmpy(v9:8.h,r29.b) 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Worker#CHECK: 190bfa22 { v3:2.h += vtmpy(v27:26.ub,r11.b) } 30*9880d681SAndroid Build Coastguard Workerv3:2.h += vtmpy(v27:26.ub,r11.b) 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Worker#CHECK: 1915e408 { v9:8.h += vtmpy(v5:4.b,r21.b) } 33*9880d681SAndroid Build Coastguard Workerv9:8.h += vtmpy(v5:4.b,r21.b) 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Worker#CHECK: 1987f71e { v31:30.uh += vmpy(v23.ub,r7.ub) } 36*9880d681SAndroid Build Coastguard Workerv31:30.uh += vmpy(v23.ub,r7.ub) 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Worker#CHECK: 1969ff47 { v7.w += vasl(v31.w,r9) } 39*9880d681SAndroid Build Coastguard Workerv7.w += vasl(v31.w,r9) 40*9880d681SAndroid Build Coastguard Worker 41*9880d681SAndroid Build Coastguard Worker#CHECK: 196de3b0 { v16.w += vasr(v3.w,r13) } 42*9880d681SAndroid Build Coastguard Workerv16.w += vasr(v3.w,r13) 43*9880d681SAndroid Build Coastguard Worker 44*9880d681SAndroid Build Coastguard Worker#CHECK: 1977fe0a { v11:10.uw += vdsad(v31:30.uh,r23.uh) } 45*9880d681SAndroid Build Coastguard Workerv11:10.uw += vdsad(v31:30.uh,r23.uh) 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Worker#CHECK: 196eee36 { v22.h += vmpyi(v14.h,r14.b) } 48*9880d681SAndroid Build Coastguard Workerv22.h += vmpyi(v14.h,r14.b) 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Worker#CHECK: 1931faac { v13:12.h += vmpy(v26.ub,r17.b) } 51*9880d681SAndroid Build Coastguard Workerv13:12.h += vmpy(v26.ub,r17.b) 52*9880d681SAndroid Build Coastguard Worker 53*9880d681SAndroid Build Coastguard Worker#CHECK: 193cfc94 { v21:20.w += vdmpy(v29:28.h,r28.b) } 54*9880d681SAndroid Build Coastguard Workerv21:20.w += vdmpy(v29:28.h,r28.b) 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Worker#CHECK: 1934fc62 { v2.w += vdmpy(v28.h,r20.h):sat } 57*9880d681SAndroid Build Coastguard Workerv2.w += vdmpy(v28.h,r20.h):sat 58*9880d681SAndroid Build Coastguard Worker 59*9880d681SAndroid Build Coastguard Worker#CHECK: 1925fe5f { v31.w += vdmpy(v31:30.h,r5.h):sat } 60*9880d681SAndroid Build Coastguard Workerv31.w += vdmpy(v31:30.h,r5.h):sat 61*9880d681SAndroid Build Coastguard Worker 62*9880d681SAndroid Build Coastguard Worker#CHECK: 194efe36 { v23:22.uw += vmpy(v30.uh,r14.uh) } 63*9880d681SAndroid Build Coastguard Workerv23:22.uw += vmpy(v30.uh,r14.uh) 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard Worker#CHECK: 1948e306 { v7:6.w += vmpy(v3.h,r8.h):sat } 66*9880d681SAndroid Build Coastguard Workerv7:6.w += vmpy(v3.h,r8.h):sat 67*9880d681SAndroid Build Coastguard Worker 68*9880d681SAndroid Build Coastguard Worker#CHECK: 192af2f8 { v25:24.w += vmpa(v19:18.h,r10.b) } 69*9880d681SAndroid Build Coastguard Workerv25:24.w += vmpa(v19:18.h,r10.b) 70*9880d681SAndroid Build Coastguard Worker 71*9880d681SAndroid Build Coastguard Worker#CHECK: 1926e4da { v27:26.h += vmpa(v5:4.ub,r6.b) } 72*9880d681SAndroid Build Coastguard Workerv27:26.h += vmpa(v5:4.ub,r6.b) 73*9880d681SAndroid Build Coastguard Worker 74*9880d681SAndroid Build Coastguard Worker#CHECK: 194ff078 { v24.w += vmpyi(v16.w,r15.h) } 75*9880d681SAndroid Build Coastguard Workerv24.w += vmpyi(v16.w,r15.h) 76*9880d681SAndroid Build Coastguard Worker 77*9880d681SAndroid Build Coastguard Worker#CHECK: 1946e247 { v7.w += vmpyi(v2.w,r6.b) } 78*9880d681SAndroid Build Coastguard Workerv7.w += vmpyi(v2.w,r6.b) 79*9880d681SAndroid Build Coastguard Worker 80*9880d681SAndroid Build Coastguard Worker#CHECK: 1c3fead5 { v21.w += vmpyo(v10.w,v31.h):<<1:sat:shift } 81*9880d681SAndroid Build Coastguard Workerv21.w += vmpyo(v10.w,v31.h):<<1:sat:shift 82*9880d681SAndroid Build Coastguard Worker 83*9880d681SAndroid Build Coastguard Worker#CHECK: 1c30e1fa { v26.w += vmpyo(v1.w,v16.h):<<1:rnd:sat:shift } 84*9880d681SAndroid Build Coastguard Workerv26.w += vmpyo(v1.w,v16.h):<<1:rnd:sat:shift 85*9880d681SAndroid Build Coastguard Worker 86*9880d681SAndroid Build Coastguard Worker#CHECK: 1c34f690 { v16.h += vmpyi(v22.h,v20.h) } 87*9880d681SAndroid Build Coastguard Workerv16.h += vmpyi(v22.h,v20.h) 88*9880d681SAndroid Build Coastguard Worker 89*9880d681SAndroid Build Coastguard Worker#CHECK: 1c34f4b5 { v21.w += vmpyie(v20.w,v20.uh) } 90*9880d681SAndroid Build Coastguard Workerv21.w += vmpyie(v20.w,v20.uh) 91*9880d681SAndroid Build Coastguard Worker 92*9880d681SAndroid Build Coastguard Worker#CHECK: 1c54f804 { v4.w += vmpyie(v24.w,v20.h) } 93*9880d681SAndroid Build Coastguard Workerv4.w += vmpyie(v24.w,v20.h) 94*9880d681SAndroid Build Coastguard Worker 95*9880d681SAndroid Build Coastguard Worker#CHECK: 1c1ff6f4 { v21:20.w += vmpy(v22.h,v31.h) } 96*9880d681SAndroid Build Coastguard Workerv21:20.w += vmpy(v22.h,v31.h) 97*9880d681SAndroid Build Coastguard Worker 98*9880d681SAndroid Build Coastguard Worker#CHECK: 1c31f026 { v7:6.w += vmpy(v16.h,v17.uh) } 99*9880d681SAndroid Build Coastguard Workerv7:6.w += vmpy(v16.h,v17.uh) 100*9880d681SAndroid Build Coastguard Worker 101*9880d681SAndroid Build Coastguard Worker#CHECK: 1c12fb98 { v25:24.h += vmpy(v27.b,v18.b) } 102*9880d681SAndroid Build Coastguard Workerv25:24.h += vmpy(v27.b,v18.b) 103*9880d681SAndroid Build Coastguard Worker 104*9880d681SAndroid Build Coastguard Worker#CHECK: 1c17fcc0 { v1:0.h += vmpy(v28.ub,v23.b) } 105*9880d681SAndroid Build Coastguard Workerv1:0.h += vmpy(v28.ub,v23.b) 106*9880d681SAndroid Build Coastguard Worker 107*9880d681SAndroid Build Coastguard Worker#CHECK: 1c16f26f { v15.w += vdmpy(v18.h,v22.h):sat } 108*9880d681SAndroid Build Coastguard Workerv15.w += vdmpy(v18.h,v22.h):sat 109*9880d681SAndroid Build Coastguard Worker 110*9880d681SAndroid Build Coastguard Worker#CHECK: 1c0bea3a { v26.w += vrmpy(v10.b,v11.b) } 111*9880d681SAndroid Build Coastguard Workerv26.w += vrmpy(v10.b,v11.b) 112*9880d681SAndroid Build Coastguard Worker 113*9880d681SAndroid Build Coastguard Worker#CHECK: 1c15eb47 { v7.w += vrmpy(v11.ub,v21.b) } 114*9880d681SAndroid Build Coastguard Workerv7.w += vrmpy(v11.ub,v21.b) 115*9880d681SAndroid Build Coastguard Worker 116*9880d681SAndroid Build Coastguard Worker#CHECK: 1c26e40e { v15:14.uw += vmpy(v4.uh,v6.uh) } 117*9880d681SAndroid Build Coastguard Workerv15:14.uw += vmpy(v4.uh,v6.uh) 118*9880d681SAndroid Build Coastguard Worker 119*9880d681SAndroid Build Coastguard Worker#CHECK: 1c0df9a8 { v9:8.uh += vmpy(v25.ub,v13.ub) } 120*9880d681SAndroid Build Coastguard Workerv9:8.uh += vmpy(v25.ub,v13.ub) 121*9880d681SAndroid Build Coastguard Worker 122*9880d681SAndroid Build Coastguard Worker#CHECK: 1c0afc15 { v21.uw += vrmpy(v28.ub,v10.ub) } 123*9880d681SAndroid Build Coastguard Workerv21.uw += vrmpy(v28.ub,v10.ub) 124