| # RUN: llvm-mc %s -triple=mipsel -show-encoding -show-inst -mattr=micromips \ |
| # RUN: -mcpu=mips32r2 | FileCheck -check-prefix=CHECK-EL %s |
| # RUN: llvm-mc %s -triple=mips -show-encoding -show-inst -mattr=micromips \ |
| # RUN: -mcpu=mips32r2 | FileCheck -check-prefix=CHECK-EB %s |
| # Check that the assembler can handle the documented syntax |
| # for fpu instructions |
| #------------------------------------------------------------------------------ |
| # FPU Instructions |
| #------------------------------------------------------------------------------ |
| # Little endian |
| #------------------------------------------------------------------------------ |
| # CHECK-EL: add.s $f4, $f6, $f8 # encoding: [0x06,0x55,0x30,0x20] |
| # CHECK-EL: add.d $f4, $f6, $f8 # encoding: [0x06,0x55,0x30,0x21] |
| # CHECK-EL: div.s $f4, $f6, $f8 # encoding: [0x06,0x55,0xf0,0x20] |
| # CHECK-EL: div.d $f4, $f6, $f8 # encoding: [0x06,0x55,0xf0,0x21] |
| # CHECK-EL: mul.s $f4, $f6, $f8 # encoding: [0x06,0x55,0xb0,0x20] |
| # CHECK-EL: mul.d $f4, $f6, $f8 # encoding: [0x06,0x55,0xb0,0x21] |
| # CHECK-EL: sub.s $f4, $f6, $f8 # encoding: [0x06,0x55,0x70,0x20] |
| # CHECK-EL: sub.d $f4, $f6, $f8 # encoding: [0x06,0x55,0x70,0x21] |
| # CHECK-EL: lwc1 $f2, 4($6) # encoding: [0x46,0x9c,0x04,0x00] |
| # CHECK-EL: ldc1 $f2, 4($6) # encoding: [0x46,0xbc,0x04,0x00] |
| # CHECK-EL: swc1 $f2, 4($6) # encoding: [0x46,0x98,0x04,0x00] |
| # CHECK-EL: sdc1 $f2, 4($6) # encoding: [0x46,0xb8,0x04,0x00] |
| # CHECK-EL: bc1f 1332 # encoding: [0x80,0x43,0x9a,0x02] |
| # CHECK-EL: nop # encoding: [0x00,0x00,0x00,0x00] |
| # CHECK-EL: bc1t 1332 # encoding: [0xa0,0x43,0x9a,0x02] |
| # CHECK-EL: nop # encoding: [0x00,0x00,0x00,0x00] |
| # CHECK-EL: ceil.w.s $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x1b] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} CEIL_W_S_MM |
| # CHECK-EL: ceil.w.d $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x5b] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} CEIL_W_MM |
| # CHECK-EL: cvt.w.s $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x09] |
| # CHECK-EL: cvt.w.d $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x49] |
| # CHECK-EL: floor.w.s $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x0b] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} FLOOR_W_S_MM |
| # CHECK-EL: floor.w.d $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x4b] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} FLOOR_W_MM |
| # CHECK-EL: round.w.s $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x3b] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} ROUND_W_S_MM |
| # CHECK-EL: round.w.d $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x7b] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} ROUND_W_MM |
| # CHECK-EL: sqrt.s $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x0a] |
| # CHECK-EL: sqrt.d $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x4a] |
| # CHECK-EL: trunc.w.s $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x2b] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} TRUNC_W_S_MM |
| # CHECK-EL: trunc.w.d $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x6b] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} TRUNC_W_MM |
| # CHECK-EL: abs.s $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x03] |
| # CHECK-EL: abs.d $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x23] |
| # CHECK-EL: mov.s $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x00] |
| # CHECK-EL: mov.d $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x20] |
| # CHECK-EL: neg.s $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x0b] |
| # CHECK-EL: neg.d $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x2b] |
| # CHECK-EL: cvt.d.s $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x13] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} CVT_D32_S_MM |
| # CHECK-EL: cvt.d.w $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x33] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} CVT_D32_W_MM |
| # CHECK-EL: cvt.s.d $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x1b] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} CVT_S_D32_MM |
| # CHECK-EL: cvt.s.w $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x3b] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} CVT_S_W_MM |
| # CHECK-EL: cfc1 $6, $0 # encoding: [0xc0,0x54,0x3b,0x10] |
| # CHECK-EL: ctc1 $6, $0 # encoding: [0xc0,0x54,0x3b,0x18] |
| # CHECK-EL: mfc1 $6, $f8 # encoding: [0xc8,0x54,0x3b,0x20] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MFC1_MM |
| # CHECK-EL: mtc1 $6, $f8 # encoding: [0xc8,0x54,0x3b,0x28] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MTC1_MM |
| # CHECK-EL: mfhc1 $6, $f8 # encoding: [0xc8,0x54,0x3b,0x30] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MFHC1_D32_MM |
| # CHECK-EL: mthc1 $6, $f8 # encoding: [0xc8,0x54,0x3b,0x38] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MTHC1_D32_MM |
| # CHECK-EL: movz.s $f4, $f6, $7 # encoding: [0xe6,0x54,0x78,0x20] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MOVZ_I_S_MM |
| # CHECK-EL: movz.d $f4, $f6, $7 # encoding: [0xe6,0x54,0x78,0x21] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MOVZ_I_D32_MM |
| # CHECK-EL: movn.s $f4, $f6, $7 # encoding: [0xe6,0x54,0x38,0x20] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MOVN_I_S_MM |
| # CHECK-EL: movn.d $f4, $f6, $7 # encoding: [0xe6,0x54,0x38,0x21] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MOVN_I_D32_MM |
| # CHECK-EL: movt.s $f4, $f6, $fcc0 # encoding: [0x86,0x54,0x60,0x00] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MOVT_S_MM |
| # CHECK-EL: movt.d $f4, $f6, $fcc0 # encoding: [0x86,0x54,0x60,0x02] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MOVT_D32_MM |
| # CHECK-EL: movf.s $f4, $f6, $fcc0 # encoding: [0x86,0x54,0x20,0x00] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MOVF_S_MM |
| # CHECK-EL: movf.d $f4, $f6, $fcc0 # encoding: [0x86,0x54,0x20,0x02] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MOVF_D32_MM |
| # CHECK-EL: madd.s $f2, $f4, $f6, $f8 # encoding: [0x06,0x55,0x01,0x11] |
| # CHECK-EL: madd.d $f2, $f4, $f6, $f8 # encoding: [0x06,0x55,0x09,0x11] |
| # CHECK-EL: msub.s $f2, $f4, $f6, $f8 # encoding: [0x06,0x55,0x21,0x11] |
| # CHECK-EL: msub.d $f2, $f4, $f6, $f8 # encoding: [0x06,0x55,0x29,0x11] |
| # CHECK-EL: nmadd.s $f2, $f4, $f6, $f8 # encoding: [0x06,0x55,0x02,0x11] |
| # CHECK-EL: nmadd.d $f2, $f4, $f6, $f8 # encoding: [0x06,0x55,0x0a,0x11] |
| # CHECK-EL: nmsub.s $f2, $f4, $f6, $f8 # encoding: [0x06,0x55,0x22,0x11] |
| # CHECK-EL: nmsub.d $f2, $f4, $f6, $f8 # encoding: [0x06,0x55,0x2a,0x11] |
| # CHECK-EL: c.f.s $f6, $f7 # encoding: [0xe6,0x54,0x3c,0x00] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_F_S_MM |
| # CHECK-EL: c.un.s $f6, $f7 # encoding: [0xe6,0x54,0x7c,0x00] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_UN_S_MM |
| # CHECK-EL: c.eq.s $f6, $f7 # encoding: [0xe6,0x54,0xbc,0x00] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_EQ_S_MM |
| # CHECK-EL: c.olt.s $f6, $f7 # encoding: [0xe6,0x54,0x3c,0x01] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_OLT_S_MM |
| # CHECK-EL: c.ult.s $f6, $f7 # encoding: [0xe6,0x54,0x7c,0x01] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_ULT_S_MM |
| # CHECK-EL: c.ole.s $f6, $f7 # encoding: [0xe6,0x54,0xbc,0x01] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_OLE_S_MM |
| # CHECK-EL: c.ule.s $f6, $f7 # encoding: [0xe6,0x54,0xfc,0x01] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_ULE_S_MM |
| # CHECK-EL: c.sf.s $f6, $f7 # encoding: [0xe6,0x54,0x3c,0x02] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_SF_S_MM |
| # CHECK-EL: c.ngle.s $f6, $f7 # encoding: [0xe6,0x54,0x7c,0x02] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_NGLE_S_MM |
| # CHECK-EL: c.seq.s $f6, $f7 # encoding: [0xe6,0x54,0xbc,0x02] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_SEQ_S_MM |
| # CHECK-EL: c.ngl.s $f6, $f7 # encoding: [0xe6,0x54,0xfc,0x02] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_NGL_S_MM |
| # CHECK-EL: c.lt.s $f6, $f7 # encoding: [0xe6,0x54,0x3c,0x03] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_LT_S_MM |
| # CHECK-EL: c.nge.s $f6, $f7 # encoding: [0xe6,0x54,0x7c,0x03] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_NGE_S_MM |
| # CHECK-EL: c.le.s $f6, $f7 # encoding: [0xe6,0x54,0xbc,0x03] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_LE_S_MM |
| # CHECK-EL: c.ngt.s $f6, $f7 # encoding: [0xe6,0x54,0xfc,0x03] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_NGT_S_MM |
| # CHECK-EL: c.sf.d $f30, $f0 # encoding: [0x1e,0x54,0x3c,0x06] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_SF_D32_MM |
| # CHECK-EL: c.f.d $f12, $f14 # encoding: [0xcc,0x55,0x3c,0x04] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_F_D32_MM |
| # CHECK-EL: c.un.d $f12, $f14 # encoding: [0xcc,0x55,0x7c,0x04] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_UN_D32_MM |
| # CHECK-EL: c.eq.d $f12, $f14 # encoding: [0xcc,0x55,0xbc,0x04] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_EQ_D32_MM |
| # CHECK-EL: c.ueq.d $f12, $f14 # encoding: [0xcc,0x55,0xfc,0x04] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_UEQ_D32_MM |
| # CHECK-EL: c.olt.d $f12, $f14 # encoding: [0xcc,0x55,0x3c,0x05] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_OLT_D32_MM |
| # CHECK-EL: c.ult.d $f12, $f14 # encoding: [0xcc,0x55,0x7c,0x05] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_ULT_D32_MM |
| # CHECK-EL: c.ole.d $f12, $f14 # encoding: [0xcc,0x55,0xbc,0x05] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_OLE_D32_MM |
| # CHECK-EL: c.ule.d $f12, $f14 # encoding: [0xcc,0x55,0xfc,0x05] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_ULE_D32_MM |
| # CHECK-EL: c.sf.d $f12, $f14 # encoding: [0xcc,0x55,0x3c,0x06] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_SF_D32_MM |
| # CHECK-EL: c.ngle.d $f12, $f14 # encoding: [0xcc,0x55,0x7c,0x06] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_NGLE_D32_MM |
| # CHECK-EL: c.seq.d $f12, $f14 # encoding: [0xcc,0x55,0xbc,0x06] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_SEQ_D32_MM |
| # CHECK-EL: c.ngl.d $f12, $f14 # encoding: [0xcc,0x55,0xfc,0x06] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_NGL_D32_MM |
| # CHECK-EL: c.lt.d $f12, $f14 # encoding: [0xcc,0x55,0x3c,0x07] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_LT_D32_MM |
| # CHECK-EL: c.nge.d $f12, $f14 # encoding: [0xcc,0x55,0x7c,0x07] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_NGE_D32_MM |
| # CHECK-EL: c.le.d $f12, $f14 # encoding: [0xcc,0x55,0xbc,0x07] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_LE_D32_MM |
| # CHECK-EL: c.ngt.d $f12, $f14 # encoding: [0xcc,0x55,0xfc,0x07] |
| # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_NGT_D32_MM |
| #------------------------------------------------------------------------------ |
| # Big endian |
| #------------------------------------------------------------------------------ |
| # CHECK-EB: add.s $f4, $f6, $f8 # encoding: [0x55,0x06,0x20,0x30] |
| # CHECK-EB: add.d $f4, $f6, $f8 # encoding: [0x55,0x06,0x21,0x30] |
| # CHECK-EB: div.s $f4, $f6, $f8 # encoding: [0x55,0x06,0x20,0xf0] |
| # CHECK-EB: div.d $f4, $f6, $f8 # encoding: [0x55,0x06,0x21,0xf0] |
| # CHECK-EB: mul.s $f4, $f6, $f8 # encoding: [0x55,0x06,0x20,0xb0] |
| # CHECK-EB: mul.d $f4, $f6, $f8 # encoding: [0x55,0x06,0x21,0xb0] |
| # CHECK-EB: sub.s $f4, $f6, $f8 # encoding: [0x55,0x06,0x20,0x70] |
| # CHECK-EB: sub.d $f4, $f6, $f8 # encoding: [0x55,0x06,0x21,0x70] |
| # CHECK-EB: lwc1 $f2, 4($6) # encoding: [0x9c,0x46,0x00,0x04] |
| # CHECK-EB: ldc1 $f2, 4($6) # encoding: [0xbc,0x46,0x00,0x04] |
| # CHECK-EB: swc1 $f2, 4($6) # encoding: [0x98,0x46,0x00,0x04] |
| # CHECK-EB: sdc1 $f2, 4($6) # encoding: [0xb8,0x46,0x00,0x04] |
| # CHECK-EB: bc1f 1332 # encoding: [0x43,0x80,0x02,0x9a] |
| # CHECK-EB: nop # encoding: [0x00,0x00,0x00,0x00] |
| # CHECK-EB: bc1t 1332 # encoding: [0x43,0xa0,0x02,0x9a] |
| # CHECK-EB: nop # encoding: [0x00,0x00,0x00,0x00] |
| # CHECK-EB: ceil.w.s $f6, $f8 # encoding: [0x54,0xc8,0x1b,0x3b] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} CEIL_W_S_MM |
| # CHECK-EB: ceil.w.d $f6, $f8 # encoding: [0x54,0xc8,0x5b,0x3b] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} CEIL_W_MM |
| # CHECK-EB: cvt.w.s $f6, $f8 # encoding: [0x54,0xc8,0x09,0x3b] |
| # CHECK-EB: cvt.w.d $f6, $f8 # encoding: [0x54,0xc8,0x49,0x3b] |
| # CHECK-EB: floor.w.s $f6, $f8 # encoding: [0x54,0xc8,0x0b,0x3b] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} FLOOR_W_S_MM |
| # CHECK-EB: floor.w.d $f6, $f8 # encoding: [0x54,0xc8,0x4b,0x3b] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} FLOOR_W_MM |
| # CHECK-EB: round.w.s $f6, $f8 # encoding: [0x54,0xc8,0x3b,0x3b] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} ROUND_W_S_MM |
| # CHECK-EB: round.w.d $f6, $f8 # encoding: [0x54,0xc8,0x7b,0x3b] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} ROUND_W_MM |
| # CHECK-EB: sqrt.s $f6, $f8 # encoding: [0x54,0xc8,0x0a,0x3b] |
| # CHECK-EB: sqrt.d $f6, $f8 # encoding: [0x54,0xc8,0x4a,0x3b] |
| # CHECK-EB: trunc.w.s $f6, $f8 # encoding: [0x54,0xc8,0x2b,0x3b] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} TRUNC_W_S_MM |
| # CHECK-EB: trunc.w.d $f6, $f8 # encoding: [0x54,0xc8,0x6b,0x3b] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} TRUNC_W_MM |
| # CHECK-EB: abs.s $f6, $f8 # encoding: [0x54,0xc8,0x03,0x7b] |
| # CHECK-EB: abs.d $f6, $f8 # encoding: [0x54,0xc8,0x23,0x7b] |
| # CHECK-EB: mov.s $f6, $f8 # encoding: [0x54,0xc8,0x00,0x7b] |
| # CHECK-EB: mov.d $f6, $f8 # encoding: [0x54,0xc8,0x20,0x7b] |
| # CHECK-EB: neg.s $f6, $f8 # encoding: [0x54,0xc8,0x0b,0x7b] |
| # CHECK-EB: neg.d $f6, $f8 # encoding: [0x54,0xc8,0x2b,0x7b] |
| # CHECK-EB: cvt.d.s $f6, $f8 # encoding: [0x54,0xc8,0x13,0x7b] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} CVT_D32_S_MM |
| # CHECK-EB: cvt.d.w $f6, $f8 # encoding: [0x54,0xc8,0x33,0x7b] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} CVT_D32_W_MM |
| # CHECK-EB: cvt.s.d $f6, $f8 # encoding: [0x54,0xc8,0x1b,0x7b] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} CVT_S_D32_MM |
| # CHECK-EB: cvt.s.w $f6, $f8 # encoding: [0x54,0xc8,0x3b,0x7b] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} CVT_S_W_MM |
| # CHECK-EB: cfc1 $6, $0 # encoding: [0x54,0xc0,0x10,0x3b] |
| # CHECK-EB: ctc1 $6, $0 # encoding: [0x54,0xc0,0x18,0x3b] |
| # CHECK-EB: mfc1 $6, $f8 # encoding: [0x54,0xc8,0x20,0x3b] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MFC1_MM |
| # CHECK-EB: mtc1 $6, $f8 # encoding: [0x54,0xc8,0x28,0x3b] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MTC1_MM |
| # CHECK-EB: mfhc1 $6, $f8 # encoding: [0x54,0xc8,0x30,0x3b] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MFHC1_D32_MM |
| # CHECK-EB: mthc1 $6, $f8 # encoding: [0x54,0xc8,0x38,0x3b] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MTHC1_D32_MM |
| # CHECK-EB: movz.s $f4, $f6, $7 # encoding: [0x54,0xe6,0x20,0x78] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MOVZ_I_S_MM |
| # CHECK-EB: movz.d $f4, $f6, $7 # encoding: [0x54,0xe6,0x21,0x78] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MOVZ_I_D32_MM |
| # CHECK-EB: movn.s $f4, $f6, $7 # encoding: [0x54,0xe6,0x20,0x38] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MOVN_I_S_MM |
| # CHECK-EB: movn.d $f4, $f6, $7 # encoding: [0x54,0xe6,0x21,0x38] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MOVN_I_D32_MM |
| # CHECK-EB: movt.s $f4, $f6, $fcc0 # encoding: [0x54,0x86,0x00,0x60] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MOVT_S_MM |
| # CHECK-EB: movt.d $f4, $f6, $fcc0 # encoding: [0x54,0x86,0x02,0x60] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MOVT_D32_MM |
| # CHECK-EB: movf.s $f4, $f6, $fcc0 # encoding: [0x54,0x86,0x00,0x20] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MOVF_S_MM |
| # CHECK-EB: movf.d $f4, $f6, $fcc0 # encoding: [0x54,0x86,0x02,0x20] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MOVF_D32_MM |
| # CHECK-EB: madd.s $f2, $f4, $f6, $f8 # encoding: [0x55,0x06,0x11,0x01] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MADD_S_MM |
| # CHECK-EB: madd.d $f2, $f4, $f6, $f8 # encoding: [0x55,0x06,0x11,0x09] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MADD_D32_MM |
| # CHECK-EB: msub.s $f2, $f4, $f6, $f8 # encoding: [0x55,0x06,0x11,0x21] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MSUB_S_MM |
| # CHECK-EB: msub.d $f2, $f4, $f6, $f8 # encoding: [0x55,0x06,0x11,0x29] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MSUB_D32_MM |
| # CHECK-EB: nmadd.s $f2, $f4, $f6, $f8 # encoding: [0x55,0x06,0x11,0x02] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} NMADD_S_MM |
| # CHECK-EB: nmadd.d $f2, $f4, $f6, $f8 # encoding: [0x55,0x06,0x11,0x0a] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} NMADD_D32_MM |
| # CHECK-EB: nmsub.s $f2, $f4, $f6, $f8 # encoding: [0x55,0x06,0x11,0x22] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} NMSUB_S_MM |
| # CHECK-EB: nmsub.d $f2, $f4, $f6, $f8 # encoding: [0x55,0x06,0x11,0x2a] |
| # CHECK-EB: c.f.s $f6, $f7 # encoding: [0x54,0xe6,0x00,0x3c] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_F_S_MM |
| # CHECK-EB: c.un.s $f6, $f7 # encoding: [0x54,0xe6,0x00,0x7c] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_UN_S_MM |
| # CHECK-EB: c.eq.s $f6, $f7 # encoding: [0x54,0xe6,0x00,0xbc] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_EQ_S_MM |
| # CHECK-EB: c.olt.s $f6, $f7 # encoding: [0x54,0xe6,0x01,0x3c] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_OLT_S_MM |
| # CHECK-EB: c.ult.s $f6, $f7 # encoding: [0x54,0xe6,0x01,0x7c] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_ULT_S_MM |
| # CHECK-EB: c.ole.s $f6, $f7 # encoding: [0x54,0xe6,0x01,0xbc] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_OLE_S_MM |
| # CHECK-EB: c.ule.s $f6, $f7 # encoding: [0x54,0xe6,0x01,0xfc] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_ULE_S_MM |
| # CHECK-EB: c.sf.s $f6, $f7 # encoding: [0x54,0xe6,0x02,0x3c] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_SF_S_MM |
| # CHECK-EB: c.ngle.s $f6, $f7 # encoding: [0x54,0xe6,0x02,0x7c] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_NGLE_S_MM |
| # CHECK-EB: c.seq.s $f6, $f7 # encoding: [0x54,0xe6,0x02,0xbc] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_SEQ_S_MM |
| # CHECK-EB: c.ngl.s $f6, $f7 # encoding: [0x54,0xe6,0x02,0xfc] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_NGL_S_MM |
| # CHECK-EB: c.lt.s $f6, $f7 # encoding: [0x54,0xe6,0x03,0x3c] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_LT_S_MM |
| # CHECK-EB: c.nge.s $f6, $f7 # encoding: [0x54,0xe6,0x03,0x7c] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_NGE_S_MM |
| # CHECK-EB: c.le.s $f6, $f7 # encoding: [0x54,0xe6,0x03,0xbc] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_LE_S_MM |
| # CHECK-EB: c.ngt.s $f6, $f7 # encoding: [0x54,0xe6,0x03,0xfc] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_NGT_S_MM |
| # CHECK-EB: c.sf.d $f30, $f0 # encoding: [0x54,0x1e,0x06,0x3c] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_SF_D32_MM |
| # CHECK-EB: c.f.d $f12, $f14 # encoding: [0x55,0xcc,0x04,0x3c] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_F_D32_MM |
| # CHECK-EB: c.un.d $f12, $f14 # encoding: [0x55,0xcc,0x04,0x7c] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_UN_D32_MM |
| # CHECK-EB: c.eq.d $f12, $f14 # encoding: [0x55,0xcc,0x04,0xbc] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_EQ_D32_MM |
| # CHECK-EB: c.ueq.d $f12, $f14 # encoding: [0x55,0xcc,0x04,0xfc] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_UEQ_D32_MM |
| # CHECK-EB: c.olt.d $f12, $f14 # encoding: [0x55,0xcc,0x05,0x3c] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_OLT_D32_MM |
| # CHECK-EB: c.ult.d $f12, $f14 # encoding: [0x55,0xcc,0x05,0x7c] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_ULT_D32_MM |
| # CHECK-EB: c.ole.d $f12, $f14 # encoding: [0x55,0xcc,0x05,0xbc] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_OLE_D32_MM |
| # CHECK-EB: c.ule.d $f12, $f14 # encoding: [0x55,0xcc,0x05,0xfc] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_ULE_D32_MM |
| # CHECK-EB: c.sf.d $f12, $f14 # encoding: [0x55,0xcc,0x06,0x3c] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_SF_D32_MM |
| # CHECK-EB: c.ngle.d $f12, $f14 # encoding: [0x55,0xcc,0x06,0x7c] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_NGLE_D32_MM |
| # CHECK-EB: c.seq.d $f12, $f14 # encoding: [0x55,0xcc,0x06,0xbc] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_SEQ_D32_MM |
| # CHECK-EB: c.ngl.d $f12, $f14 # encoding: [0x55,0xcc,0x06,0xfc] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_NGL_D32_MM |
| # CHECK-EB: c.lt.d $f12, $f14 # encoding: [0x55,0xcc,0x07,0x3c] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_LT_D32_MM |
| # CHECK-EB: c.nge.d $f12, $f14 # encoding: [0x55,0xcc,0x07,0x7c] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_NGE_D32_MM |
| # CHECK-EB: c.le.d $f12, $f14 # encoding: [0x55,0xcc,0x07,0xbc] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_LE_D32_MM |
| # CHECK-EB: c.ngt.d $f12, $f14 # encoding: [0x55,0xcc,0x07,0xfc] |
| # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_NGT_D32_MM |
| |
| add.s $f4, $f6, $f8 |
| add.d $f4, $f6, $f8 |
| div.s $f4, $f6, $f8 |
| div.d $f4, $f6, $f8 |
| mul.s $f4, $f6, $f8 |
| mul.d $f4, $f6, $f8 |
| sub.s $f4, $f6, $f8 |
| sub.d $f4, $f6, $f8 |
| lwc1 $f2, 4($6) |
| ldc1 $f2, 4($6) |
| swc1 $f2, 4($6) |
| sdc1 $f2, 4($6) |
| bc1f 1332 |
| bc1t 1332 |
| ceil.w.s $f6, $f8 |
| ceil.w.d $f6, $f8 |
| cvt.w.s $f6, $f8 |
| cvt.w.d $f6, $f8 |
| floor.w.s $f6, $f8 |
| floor.w.d $f6, $f8 |
| round.w.s $f6, $f8 |
| round.w.d $f6, $f8 |
| sqrt.s $f6, $f8 |
| sqrt.d $f6, $f8 |
| trunc.w.s $f6, $f8 |
| trunc.w.d $f6, $f8 |
| abs.s $f6, $f8 |
| abs.d $f6, $f8 |
| mov.s $f6, $f8 |
| mov.d $f6, $f8 |
| neg.s $f6, $f8 |
| neg.d $f6, $f8 |
| cvt.d.s $f6, $f8 |
| cvt.d.w $f6, $f8 |
| cvt.s.d $f6, $f8 |
| cvt.s.w $f6, $f8 |
| cfc1 $6, $0 |
| ctc1 $6, $0 |
| mfc1 $6, $f8 |
| mtc1 $6, $f8 |
| mfhc1 $6, $f8 |
| mthc1 $6, $f8 |
| movz.s $f4, $f6, $7 |
| movz.d $f4, $f6, $7 |
| movn.s $f4, $f6, $7 |
| movn.d $f4, $f6, $7 |
| movt.s $f4, $f6, $fcc0 |
| movt.d $f4, $f6, $fcc0 |
| movf.s $f4, $f6, $fcc0 |
| movf.d $f4, $f6, $fcc0 |
| madd.s $f2, $f4, $f6, $f8 |
| madd.d $f2, $f4, $f6, $f8 |
| msub.s $f2, $f4, $f6, $f8 |
| msub.d $f2, $f4, $f6, $f8 |
| nmadd.s $f2, $f4, $f6, $f8 |
| nmadd.d $f2, $f4, $f6, $f8 |
| nmsub.s $f2, $f4, $f6, $f8 |
| nmsub.d $f2, $f4, $f6, $f8 |
| c.f.s $f6, $f7 |
| c.un.s $f6, $f7 |
| c.eq.s $f6, $f7 |
| c.olt.s $f6, $f7 |
| c.ult.s $f6, $f7 |
| c.ole.s $f6, $f7 |
| c.ule.s $f6, $f7 |
| c.sf.s $f6, $f7 |
| c.ngle.s $f6, $f7 |
| c.seq.s $f6, $f7 |
| c.ngl.s $f6, $f7 |
| c.lt.s $f6, $f7 |
| c.nge.s $f6, $f7 |
| c.le.s $f6, $f7 |
| c.ngt.s $f6, $f7 |
| c.sf.d $f30, $f0 |
| c.f.d $f12, $f14 |
| c.un.d $f12, $f14 |
| c.eq.d $f12, $f14 |
| c.ueq.d $f12, $f14 |
| c.olt.d $f12, $f14 |
| c.ult.d $f12, $f14 |
| c.ole.d $f12, $f14 |
| c.ule.d $f12, $f14 |
| c.sf.d $f12, $f14 |
| c.ngle.d $f12, $f14 |
| c.seq.d $f12, $f14 |
| c.ngl.d $f12, $f14 |
| c.lt.d $f12, $f14 |
| c.nge.d $f12, $f14 |
| c.le.d $f12, $f14 |
| c.ngt.d $f12, $f14 |