136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# Instructions that are valid 236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# 3dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips2 | FileCheck %s 436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 5dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines .set noat 6dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines abs.d $f7,$f25 # CHECK: encoding: 7dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines abs.s $f9,$f16 8dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines add $s7,$s2,$a1 9dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines add.d $f1,$f7,$f29 10dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines add.s $f8,$f21,$f24 11dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines addi $13,$9,26322 12cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines addi $8,$8,~1 # CHECK: addi $8, $8, -2 # encoding: [0x21,0x08,0xff,0xfe] 13dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines addu $9,$a0,$a2 14dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines and $s7,$v0,$12 15cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines and $2,4 # CHECK: andi $2, $2, 4 # encoding: [0x30,0x42,0x00,0x04] 16cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines bc1f $fcc0, 4 # CHECK: bc1f 4 # encoding: [0x45,0x00,0x00,0x01] 17cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines bc1f 4 # CHECK: bc1f 4 # encoding: [0x45,0x00,0x00,0x01] 18cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines bc1t $fcc0, 4 # CHECK: bc1t 4 # encoding: [0x45,0x01,0x00,0x01] 19cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines bc1t 4 # CHECK: bc1t 4 # encoding: [0x45,0x01,0x00,0x01] 20cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines bal 21100 # CHECK: bal 21100 # encoding: [0x04,0x11,0x14,0x9b] 21cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines bgezal $0, 21100 # CHECK: bal 21100 # encoding: [0x04,0x11,0x14,0x9b] 22cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines bgezal $6, 21100 # CHECK: bgezal $6, 21100 # encoding: [0x04,0xd1,0x14,0x9b] 23cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines bltzal $6, 21100 # CHECK: bltzal $6, 21100 # encoding: [0x04,0xd0,0x14,0x9b] 24dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines c.ngl.d $f29,$f29 25dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines c.ngle.d $f0,$f16 26dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines c.sf.d $f30,$f0 27dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines c.sf.s $f14,$f22 28dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ceil.w.d $f11,$f25 29dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ceil.w.s $f6,$f20 30dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines cfc1 $s1,$21 31dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ctc1 $a2,$26 32dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines cvt.d.s $f22,$f28 33dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines cvt.d.w $f26,$f11 34dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines cvt.s.d $f26,$f8 35dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines cvt.s.w $f22,$f15 36dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines cvt.w.d $f20,$f14 37dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines cvt.w.s $f20,$f24 38dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines div $zero,$25,$11 39dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines div.d $f29,$f20,$f27 40dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines div.s $f4,$f5,$f15 41dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines divu $zero,$25,$15 42dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ehb # CHECK: ehb # encoding: [0x00,0x00,0x00,0xc0] 43dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines floor.w.d $f14,$f11 44dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines floor.w.s $f8,$f9 45dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines lb $24,-14515($10) 46dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines lbu $8,30195($v1) 47dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ldc1 $f11,16391($s0) 48cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines ldc2 $8,-21181($at) # CHECK: ldc2 $8, -21181($1) # encoding: [0xd8,0x28,0xad,0x43] 49dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ldc3 $29,-28645($s1) 50dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines lh $11,-8556($s5) 51dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines lhu $s3,-22851($v0) 52dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines li $at,-29773 53dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines li $zero,-29889 54cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines ll $v0,-7321($s2) # CHECK: ll $2, -7321($18) # encoding: [0xc2,0x42,0xe3,0x67] 55dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines lw $8,5674($a1) 56dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines lwc1 $f16,10225($k0) 57cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines lwc2 $18,-841($a2) # CHECK: lwc2 $18, -841($6) # encoding: [0xc8,0xd2,0xfc,0xb7] 58dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines lwc3 $10,-32265($k0) 59dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines lwl $s4,-4231($15) 60dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines lwr $zero,-19147($gp) 61dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mfc1 $a3,$f27 62dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mfhi $s3 63dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mfhi $sp 64dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mflo $s1 65dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mov.d $f20,$f14 66dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mov.s $f2,$f27 67dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines move $s8,$a0 68dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines move $25,$a2 69dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mtc1 $s8,$f9 70dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mthi $s1 71dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mtlo $sp 72dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mtlo $25 73dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mul.d $f20,$f20,$f16 74dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mul.s $f30,$f10,$f2 75dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mult $sp,$s4 76dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines mult $sp,$v0 77dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines multu $gp,$k0 78dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines multu $9,$s2 79dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines negu $2 # CHECK: negu $2, $2 # encoding: [0x00,0x02,0x10,0x23] 80dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines negu $2,$3 # CHECK: negu $2, $3 # encoding: [0x00,0x03,0x10,0x23] 81dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines neg.d $f27,$f18 82dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines neg.s $f1,$f15 83dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines nop 84dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines nor $a3,$zero,$a3 85dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines or $12,$s0,$sp 86cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines or $2, 4 # CHECK: ori $2, $2, 4 # encoding: [0x34,0x42,0x00,0x04] 87dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines round.w.d $f6,$f4 88dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines round.w.s $f27,$f28 89dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sb $s6,-19857($14) 90cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines sc $15,18904($s3) # CHECK: sc $15, 18904($19) # encoding: [0xe2,0x6f,0x49,0xd8] 91dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sdc1 $f31,30574($13) 92cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines sdc2 $20,23157($s2) # CHECK: sdc2 $20, 23157($18) # encoding: [0xfa,0x54,0x5a,0x75] 93dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sdc3 $12,5835($10) 94dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sh $14,-6704($15) 95dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sll $a3,18 # CHECK: sll $7, $7, 18 # encoding: [0x00,0x07,0x3c,0x80] 96dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sll $a3,$zero,18 # CHECK: sll $7, $zero, 18 # encoding: [0x00,0x00,0x3c,0x80] 97dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sll $a3,$zero,$9 # CHECK: sllv $7, $zero, $9 # encoding: [0x01,0x20,0x38,0x04] 98dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sllv $a3,$zero,$9 # CHECK: sllv $7, $zero, $9 # encoding: [0x01,0x20,0x38,0x04] 99dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines slt $s7,$11,$k1 # CHECK: slt $23, $11, $27 # encoding: [0x01,0x7b,0xb8,0x2a] 100dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines slti $s1,$10,9489 # CHECK: slti $17, $10, 9489 # encoding: [0x29,0x51,0x25,0x11] 101dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sltiu $25,$25,-15531 # CHECK: sltiu $25, $25, -15531 # encoding: [0x2f,0x39,0xc3,0x55] 102dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sltu $s4,$s5,$11 # CHECK: sltu $20, $21, $11 # encoding: [0x02,0xab,0xa0,0x2b] 103dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sltu $24,$25,-15531 # CHECK: sltiu $24, $25, -15531 # encoding: [0x2f,0x38,0xc3,0x55] 104dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sqrt.d $f17,$f22 105dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sqrt.s $f0,$f1 106dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sra $s1,15 # CHECK: sra $17, $17, 15 # encoding: [0x00,0x11,0x8b,0xc3] 107dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sra $s1,$s7,15 # CHECK: sra $17, $23, 15 # encoding: [0x00,0x17,0x8b,0xc3] 108dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sra $s1,$s7,$sp # CHECK: srav $17, $23, $sp # encoding: [0x03,0xb7,0x88,0x07] 109dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines srav $s1,$s7,$sp # CHECK: srav $17, $23, $sp # encoding: [0x03,0xb7,0x88,0x07] 110dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines srl $2,7 # CHECK: srl $2, $2, 7 # encoding: [0x00,0x02,0x11,0xc2] 111dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines srl $2,$2,7 # CHECK: srl $2, $2, 7 # encoding: [0x00,0x02,0x11,0xc2] 112dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines srl $25,$s4,$a0 # CHECK: srlv $25, $20, $4 # encoding: [0x00,0x94,0xc8,0x06] 113dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines srlv $25,$s4,$a0 # CHECK: srlv $25, $20, $4 # encoding: [0x00,0x94,0xc8,0x06] 114dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ssnop # CHECK: ssnop # encoding: [0x00,0x00,0x00,0x40] 115dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sub $s6,$s3,$12 116dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sub.d $f18,$f3,$f17 117dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sub.s $f23,$f22,$f22 118dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines subu $sp,$s6,$s6 119dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines sw $ra,-10160($sp) 120dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines swc1 $f6,-8465($24) 121cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines swc2 $25,24880($s0) # CHECK: swc2 $25, 24880($16) # encoding: [0xea,0x19,0x61,0x30] 122dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines swc3 $10,-32265($k0) 123dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines swl $15,13694($s3) 124dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines swr $s1,-26590($14) 125cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines sync # CHECK: sync # encoding: [0x00,0x00,0x00,0x0f] 126dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines teqi $s5,-17504 127dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines tgei $s1,5025 128dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines tgeiu $sp,-28621 129dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines tlbp # CHECK: tlbp # encoding: [0x42,0x00,0x00,0x08] 130dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines tlbr # CHECK: tlbr # encoding: [0x42,0x00,0x00,0x01] 131dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines tlbwi # CHECK: tlbwi # encoding: [0x42,0x00,0x00,0x02] 132dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines tlbwr # CHECK: tlbwr # encoding: [0x42,0x00,0x00,0x06] 133dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines tlti $14,-21059 134dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines tltiu $ra,-5076 135dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines tnei $12,-29647 136dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines trunc.w.d $f22,$f15 137dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines trunc.w.s $f28,$f30 138dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines xor $s2,$a0,$s8 139