1*56bb7041Schristos$AT = '@'; 2*56bb7041Schristosprint <<END 3*56bb7041Schristos.text 4*56bb7041Schristos .type _start,${AT}function 5*56bb7041Schristos_start: 6*56bb7041Schristos 7*56bb7041Schristos pmpyshr2 r4 = r5, r6, 0 8*56bb7041Schristos pmpyshr2.u r4 = r5, r6, 16 9*56bb7041Schristos 10*56bb7041Schristos pmpy2.r r4 = r5, r6 11*56bb7041Schristos pmpy2.l r4 = r5, r6 12*56bb7041Schristos 13*56bb7041Schristos mix1.r r4 = r5, r6 14*56bb7041Schristos mix2.r r4 = r5, r6 15*56bb7041Schristos mix4.r r4 = r5, r6 16*56bb7041Schristos mix1.l r4 = r5, r6 17*56bb7041Schristos mix2.l r4 = r5, r6 18*56bb7041Schristos mix4.l r4 = r5, r6 19*56bb7041Schristos 20*56bb7041Schristos pack2.uss r4 = r5, r6 21*56bb7041Schristos pack2.sss r4 = r5, r6 22*56bb7041Schristos pack4.sss r4 = r5, r6 23*56bb7041Schristos 24*56bb7041Schristos unpack1.h r4 = r5, r6 25*56bb7041Schristos unpack2.h r4 = r5, r6 26*56bb7041Schristos unpack4.h r4 = r5, r6 27*56bb7041Schristos unpack1.l r4 = r5, r6 28*56bb7041Schristos unpack2.l r4 = r5, r6 29*56bb7041Schristos unpack4.l r4 = r5, r6 30*56bb7041Schristos 31*56bb7041Schristos pmin1.u r4 = r5, r6 32*56bb7041Schristos pmax1.u r4 = r5, r6 33*56bb7041Schristos 34*56bb7041Schristos pmin2 r4 = r5, r6 35*56bb7041Schristos pmax2 r4 = r5, r6 36*56bb7041Schristos 37*56bb7041Schristos psad1 r4 = r5, r6 38*56bb7041Schristos 39*56bb7041Schristos mux1 r4 = r5, ${AT}rev 40*56bb7041Schristos mux1 r4 = r5, ${AT}mix 41*56bb7041Schristos mux1 r4 = r5, ${AT}shuf 42*56bb7041Schristos mux1 r4 = r5, ${AT}alt 43*56bb7041Schristos mux1 r4 = r5, ${AT}brcst 44*56bb7041Schristos 45*56bb7041Schristos mux2 r4 = r5, 0 46*56bb7041Schristos mux2 r4 = r5, 0xff 47*56bb7041Schristos mux2 r4 = r5, 0xaa 48*56bb7041Schristos 49*56bb7041Schristos pshr2 r4 = r5, r6 50*56bb7041Schristos pshr2 r4 = r5, 0 51*56bb7041Schristos pshr2 r4 = r5, 8 52*56bb7041Schristos pshr2 r4 = r5, 31 53*56bb7041Schristos 54*56bb7041Schristos pshr4 r4 = r5, r6 55*56bb7041Schristos pshr4 r4 = r5, 0 56*56bb7041Schristos pshr4 r4 = r5, 8 57*56bb7041Schristos pshr4 r4 = r5, 31 58*56bb7041Schristos 59*56bb7041Schristos pshr2.u r4 = r5, r6 60*56bb7041Schristos pshr2.u r4 = r5, 0 61*56bb7041Schristos pshr2.u r4 = r5, 8 62*56bb7041Schristos pshr2.u r4 = r5, 31 63*56bb7041Schristos 64*56bb7041Schristos pshr4.u r4 = r5, r6 65*56bb7041Schristos pshr4.u r4 = r5, 0 66*56bb7041Schristos pshr4.u r4 = r5, 8 67*56bb7041Schristos pshr4.u r4 = r5, 31 68*56bb7041Schristos 69*56bb7041Schristos shr r4 = r5, r6 70*56bb7041Schristos shr.u r4 = r5, r6 71*56bb7041Schristos 72*56bb7041Schristos pshl2 r4 = r5, r6 73*56bb7041Schristos pshl2 r4 = r5, 0 74*56bb7041Schristos pshl2 r4 = r5, 8 75*56bb7041Schristos pshl2 r4 = r5, 31 76*56bb7041Schristos 77*56bb7041Schristos pshl4 r4 = r5, r6 78*56bb7041Schristos pshl4 r4 = r5, 0 79*56bb7041Schristos pshl4 r4 = r5, 8 80*56bb7041Schristos pshl4 r4 = r5, 31 81*56bb7041Schristos 82*56bb7041Schristos shl r4 = r5, r6 83*56bb7041Schristos 84*56bb7041Schristos popcnt r4 = r5 85*56bb7041Schristos 86*56bb7041Schristos shrp r4 = r5, r6, 0 87*56bb7041Schristos shrp r4 = r5, r6, 12 88*56bb7041Schristos shrp r4 = r5, r6, 63 89*56bb7041Schristos 90*56bb7041Schristos extr r4 = r5, 0, 16 91*56bb7041Schristos extr r4 = r5, 0, 63 92*56bb7041Schristos extr r4 = r5, 10, 40 93*56bb7041Schristos 94*56bb7041Schristos extr.u r4 = r5, 0, 16 95*56bb7041Schristos extr.u r4 = r5, 0, 63 96*56bb7041Schristos extr.u r4 = r5, 10, 40 97*56bb7041Schristos 98*56bb7041Schristos dep.z r4 = r5, 0, 16 99*56bb7041Schristos dep.z r4 = r5, 0, 63 100*56bb7041Schristos dep.z r4 = r5, 10, 40 101*56bb7041Schristos dep.z r4 = 0, 0, 16 102*56bb7041Schristos dep.z r4 = 127, 0, 63 103*56bb7041Schristos dep.z r4 = -128, 5, 50 104*56bb7041Schristos dep.z r4 = 0x55, 10, 40 105*56bb7041Schristos 106*56bb7041Schristos dep r4 = 0, r5, 0, 16 107*56bb7041Schristos dep r4 = -1, r5, 0, 63 108*56bb7041Schristos// Insert padding NOPs to force the same template selection as IAS. 109*56bb7041Schristos nop.m 0 110*56bb7041Schristos nop.f 0 111*56bb7041Schristos dep r4 = r5, r6, 10, 7 112*56bb7041Schristos 113*56bb7041Schristos movl r4 = 0 114*56bb7041Schristos movl r4 = 0xffffffffffffffff 115*56bb7041Schristos movl r4 = 0x1234567890abcdef 116*56bb7041Schristos 117*56bb7041Schristos break.i 0 118*56bb7041Schristos break.i 0x1fffff 119*56bb7041Schristos 120*56bb7041Schristos nop.i 0 121*56bb7041Schristos nop.i 0x1fffff 122*56bb7041Schristos 123*56bb7041Schristos chk.s.i r4, _start 124*56bb7041Schristos 125*56bb7041Schristos mov r4 = b0 126*56bb7041Schristos mov b0 = r4 127*56bb7041Schristos 128*56bb7041Schristos mov pr = r4, 0 129*56bb7041Schristos mov pr = r4, 0x1234 130*56bb7041Schristos mov pr = r4, 0x1ffff 131*56bb7041Schristos 132*56bb7041Schristos mov pr.rot = 0 133*56bb7041Schristos// ??? This was originally 0x3ffffff, but that generates an assembler warning 134*56bb7041Schristos// that the testsuite infrastructure isn't set up to ignore. 135*56bb7041Schristos mov pr.rot = 0x3ff0000 136*56bb7041Schristos mov pr.rot = -0x4000000 137*56bb7041Schristos 138*56bb7041Schristos zxt1 r4 = r5 139*56bb7041Schristos zxt2 r4 = r5 140*56bb7041Schristos zxt4 r4 = r5 141*56bb7041Schristos 142*56bb7041Schristos sxt1 r4 = r5 143*56bb7041Schristos sxt2 r4 = r5 144*56bb7041Schristos sxt4 r4 = r5 145*56bb7041Schristos 146*56bb7041Schristos czx1.l r4 = r5 147*56bb7041Schristos czx2.l r4 = r5 148*56bb7041Schristos czx1.r r4 = r5 149*56bb7041Schristos czx2.r r4 = r5 150*56bb7041Schristos 151*56bb7041SchristosEND 152*56bb7041Schristos; 153*56bb7041Schristos 154*56bb7041Schristos@ctype = ( "", ".unc", ".and", ".or", ".or.andcm", ".orcm", 155*56bb7041Schristos ".andcm", ".and.orcm" ); 156*56bb7041Schristos 157*56bb7041Schristos$i = 0; 158*56bb7041Schristosforeach $z ( ".z", ".nz" ) { 159*56bb7041Schristos foreach $c (@ctype) { 160*56bb7041Schristos print "\ttbit${z}${c} p2, p3 = r4, $i\n"; 161*56bb7041Schristos ++$i; 162*56bb7041Schristos } 163*56bb7041Schristos} 164*56bb7041Schristosprint "\n"; 165*56bb7041Schristos 166*56bb7041Schristosforeach $z ( ".z", ".nz" ) { 167*56bb7041Schristos foreach $c (@ctype) { 168*56bb7041Schristos print "\ttnat${z}${c} p2, p3 = r4\n"; 169*56bb7041Schristos } 170*56bb7041Schristos} 171*56bb7041Schristosprint "\n"; 172*56bb7041Schristos 173*56bb7041Schristos 174*56bb7041Schristos@mwh = ( "", ".sptk", ".dptk" ); 175*56bb7041Schristos@ih = ( "", ".imp" ); 176*56bb7041Schristos 177*56bb7041Schristos$LAB = 1; 178*56bb7041Schristos 179*56bb7041Schristosforeach $b ("", ".ret") { 180*56bb7041Schristos foreach $w (@mwh) { 181*56bb7041Schristos foreach $i (@ih) { 182*56bb7041Schristos print "\tmov${b}${w}${i} b3 = r4, .L${LAB}\n"; 183*56bb7041Schristos } 184*56bb7041Schristos print ".space 240\n"; 185*56bb7041Schristos print ".L${LAB}:\n"; 186*56bb7041Schristos ++$LAB; 187*56bb7041Schristos } 188*56bb7041Schristos print "\n"; 189*56bb7041Schristos} 190