llvm.org GIT mirror llvm / e16f30e
Recommit: "[mips] Add rsqrt, recip for MIPS" Add rsqrt.[ds], recip.[ds] for MIPS. Correct the microMIPS definitions for architecture support and register usage. Reviewers: vkalintiris, zoran.jovanoic Differential Review: https://reviews.llvm.org/D24499 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283334 91177308-0d34-0410-b5e6-96231b3b80d8 Simon Dardis 3 years ago
58 changed file(s) with 182 addition(s) and 90 deletion(s). Raw diff Collapse all Expand all
185185 class TRUNC_W_D_MMR6_ENC : POOL32F_MATH_FM_MMR6<"trunc.w.d", 1, 0b10101100>;
186186 class SQRT_S_MMR6_ENC : POOL32F_MATH_FM_MMR6<"sqrt.s", 0, 0b00101000>;
187187 class SQRT_D_MMR6_ENC : POOL32F_MATH_FM_MMR6<"sqrt.d", 1, 0b00101000>;
188 class RSQRT_S_MMR6_ENC : POOL32F_MATH_FM_MMR6<"rsqrt.s", 0, 0b00001000>;
189 class RSQRT_D_MMR6_ENC : POOL32F_MATH_FM_MMR6<"rsqrt.d", 1, 0b00001000>;
190188 class SB_MMR6_ENC : SB32_SH32_STORE_FM_MMR6<0b000110>;
191189 class SBE_MMR6_ENC : POOL32C_STORE_EVA_FM_MMR6<0b100>;
192190 class SCE_MMR6_ENC : POOL32C_STORE_EVA_FM_MMR6<0b110>;
197195 class LW_MMR6_ENC : LOAD_WORD_FM_MMR6;
198196 class LUI_MMR6_ENC : LOAD_UPPER_IMM_FM_MMR6;
199197 class JALRC_HB_MMR6_ENC : POOL32A_JALRC_FM_MMR6<"jalrc.hb", 0b0001111100>;
200 class RECIP_S_MMR6_ENC : POOL32F_RECIP_ROUND_FM_MMR6<"recip.s", 0, 0b01001000>;
201 class RECIP_D_MMR6_ENC : POOL32F_RECIP_ROUND_FM_MMR6<"recip.d", 1, 0b01001000>;
202198 class RINT_S_MMR6_ENC : POOL32F_RINT_FM_MMR6<"rint.s", 0>;
203199 class RINT_D_MMR6_ENC : POOL32F_RINT_FM_MMR6<"rint.d", 1>;
204200 class ROUND_L_S_MMR6_ENC : POOL32F_RECIP_ROUND_FM_MMR6<"round.l.s", 0,
11171113 II_SQRT_S, fsqrt>;
11181114 class SQRT_D_MMR6_DESC : ABSS_FT_MMR6_DESC_BASE<"sqrt.d", AFGR64Opnd, AFGR64Opnd,
11191115 II_SQRT_D, fsqrt>;
1120 class RSQRT_S_MMR6_DESC : ABSS_FT_MMR6_DESC_BASE<"rsqrt.s", FGR32Opnd,
1121 FGR32Opnd, II_TRUNC>;
1122 class RSQRT_D_MMR6_DESC : ABSS_FT_MMR6_DESC_BASE<"rsqrt.d", FGR32Opnd,
1123 AFGR64Opnd, II_TRUNC>;
1124 class RECIP_S_MMR6_DESC : ABSS_FT_MMR6_DESC_BASE<"recip.s", FGR32Opnd,
1125 FGR32Opnd, II_ROUND>;
1126 class RECIP_D_MMR6_DESC : ABSS_FT_MMR6_DESC_BASE<"recip.d", FGR32Opnd, FGR32Opnd,
1127 II_ROUND>;
11281116 class ROUND_L_S_MMR6_DESC : ABSS_FT_MMR6_DESC_BASE<"round.l.s", FGR64Opnd,
11291117 FGR32Opnd, II_ROUND>;
11301118 class ROUND_L_D_MMR6_DESC : ABSS_FT_MMR6_DESC_BASE<"round.l.d", FGR64Opnd,
16631651 ISA_MICROMIPS32R6;
16641652 def SQRT_D_MMR6 : StdMMR6Rel, SQRT_D_MMR6_ENC, SQRT_D_MMR6_DESC,
16651653 ISA_MICROMIPS32R6;
1666 def RSQRT_S_MMR6 : StdMMR6Rel, RSQRT_S_MMR6_ENC, RSQRT_S_MMR6_DESC,
1667 ISA_MICROMIPS32R6;
1668 def RSQRT_D_MMR6 : StdMMR6Rel, RSQRT_D_MMR6_ENC, RSQRT_D_MMR6_DESC,
1669 ISA_MICROMIPS32R6;
16701654 def SB_MMR6 : StdMMR6Rel, SB_MMR6_DESC, SB_MMR6_ENC, ISA_MICROMIPS32R6;
16711655 def SBE_MMR6 : StdMMR6Rel, SBE_MMR6_DESC, SBE_MMR6_ENC, ISA_MICROMIPS32R6;
16721656 def SCE_MMR6 : StdMMR6Rel, SCE_MMR6_DESC, SCE_MMR6_ENC, ISA_MICROMIPS32R6;
17071691 def EXT_MMR6 : StdMMR6Rel, EXT_MMR6_ENC, EXT_MMR6_DESC, ISA_MICROMIPS32R6;
17081692 def INS_MMR6 : StdMMR6Rel, INS_MMR6_ENC, INS_MMR6_DESC, ISA_MICROMIPS32R6;
17091693 def JALRC_MMR6 : R6MMR6Rel, JALRC_MMR6_ENC, JALRC_MMR6_DESC, ISA_MICROMIPS32R6;
1710 def RECIP_S_MMR6 : StdMMR6Rel, RECIP_S_MMR6_ENC, RECIP_S_MMR6_DESC,
1711 ISA_MICROMIPS32R6;
1712 def RECIP_D_MMR6 : StdMMR6Rel, RECIP_D_MMR6_ENC, RECIP_D_MMR6_DESC, ISA_MICROMIPS32R6;
17131694 def RINT_S_MMR6 : StdMMR6Rel, RINT_S_MMR6_ENC, RINT_S_MMR6_DESC,
17141695 ISA_MICROMIPS32R6;
17151696 def RINT_D_MMR6 : StdMMR6Rel, RINT_D_MMR6_ENC, RINT_D_MMR6_DESC, ISA_MICROMIPS32R6;
140140 MFC1_FM_MM<0x40>;
141141 def CTC1_MM : MMRel, MTC1_FT<"ctc1", CCROpnd, GPR32Opnd, II_CTC1>,
142142 MFC1_FM_MM<0x60>;
143 def RECIP_S_MM : MMRel, ABSS_FT<"recip.s", FGR32Opnd, FGR32Opnd,
144 II_RECIP_S>,
145 ROUND_W_FM_MM<0b0, 0b01001000>;
146 def RECIP_D_MM : MMRel, ABSS_FT<"recip.d", AFGR64Opnd, AFGR64Opnd,
147 II_RECIP_D>, ROUND_W_FM_MM<0b1, 0b01001000>;
148 def RSQRT_S_MM : MMRel, ABSS_FT<"rsqrt.s", FGR32Opnd, FGR32Opnd,
149 II_RECIP_S>,
150 ROUND_W_FM_MM<0b0, 0b00001000>;
151 def RSQRT_D_MM : MMRel, ABSS_FT<"rsqrt.d", AFGR64Opnd, AFGR64Opnd,
152 II_RECIP_D>, ROUND_W_FM_MM<0b1, 0b00001000>;
143153 }
144154 let DecoderNamespace = "MicroMips", DecoderMethod = "DecodeFMemMMR2" in {
145155 def LDC1_MM : MMRel, LW_FT<"ldc1", AFGR64Opnd, mem_mm_16, II_LDC1, load>,
283283 defm FLOOR_W : ROUND_M<"floor.w.d", II_FLOOR>, ABSS_FM<0xf, 17>, ISA_MIPS2;
284284 defm CVT_W : ROUND_M<"cvt.w.d", II_CVT>, ABSS_FM<0x24, 17>;
285285
286 let AdditionalPredicates = [NotInMicroMips] in {
287 def RECIP_S : MMRel, ABSS_FT<"recip.s", FGR32Opnd, FGR32Opnd, II_RECIP_S>,
288 ABSS_FM<0b010101, 0x10>, INSN_MIPS4_32R2;
289 def RECIP_D : MMRel, ABSS_FT<"recip.d", FGR64Opnd, FGR64Opnd, II_RECIP_D>,
290 ABSS_FM<0b010101, 0x11>, INSN_MIPS4_32R2;
291 def RSQRT_S : MMRel, ABSS_FT<"rsqrt.s", FGR32Opnd, FGR32Opnd, II_RSQRT_S>,
292 ABSS_FM<0b010110, 0x10>, INSN_MIPS4_32R2;
293 def RSQRT_D : MMRel, ABSS_FT<"rsqrt.d", FGR64Opnd, FGR64Opnd, II_RSQRT_D>,
294 ABSS_FM<0b010110, 0x11>, INSN_MIPS4_32R2;
295 }
286296 let DecoderNamespace = "Mips64" in {
287297 let AdditionalPredicates = [NotInMicroMips] in {
288298 def ROUND_L_S : ABSS_FT<"round.l.s", FGR64Opnd, FGR32Opnd, II_ROUND>,
299299 // The portions of MIPS-III that were also added to MIPS32
300300 class INSN_MIPS3_32R2 { list InsnPredicates = [HasMips3_32r2]; }
301301
302 // The portions of MIPS-IV that were also added to MIPS32.
303 class INSN_MIPS4_32 { list InsnPredicates = [HasMips4_32]; }
304
302305 // The portions of MIPS-IV that were also added to MIPS32 but were removed in
303306 // MIPS32r6 and MIPS64r6.
304307 class INSN_MIPS4_32_NOT_32R6_64R6 {
309312 // MIPS32r6 and MIPS64r6.
310313 class INSN_MIPS4_32R2_NOT_32R6_64R6 {
311314 list InsnPredicates = [HasMips4_32r2, NotMips32r6, NotMips64r6];
315 }
316
317 // The portions of MIPS-IV that were also added to MIPS32r2.
318 class INSN_MIPS4_32R2 {
319 list InsnPredicates = [HasMips4_32r2];
312320 }
313321
314322 // The portions of MIPS-V that were also added to MIPS32r2 but were removed in
269269 def II_POP : InstrItinClass;
270270 def II_RDHWR : InstrItinClass;
271271 def II_RESTORE : InstrItinClass;
272 def II_RECIP_S : InstrItinClass;
273 def II_RECIP_D : InstrItinClass;
272274 def II_RINT_S : InstrItinClass;
273275 def II_RINT_D : InstrItinClass;
274276 def II_ROTR : InstrItinClass;
275277 def II_ROTRV : InstrItinClass;
276278 def II_ROUND : InstrItinClass;
279 def II_RSQRT_S : InstrItinClass;
280 def II_RSQRT_D : InstrItinClass;
277281 def II_SAVE : InstrItinClass;
278282 def II_SC : InstrItinClass;
279283 def II_SCD : InstrItinClass;
606610 InstrItinData]>,
607611 InstrItinData]>,
608612 InstrItinData]>,
613 InstrItinData]>,
614 InstrItinData]>,
615 InstrItinData]>,
616 InstrItinData]>,
609617 InstrItinData]>,
610618 InstrItinData]>,
611619 InstrItinData]>,
438438 // sqrt.[ds], sqrt.ps
439439 def : ItinRW<[GenericWriteFPUSqrtS], [II_SQRT_S]>;
440440 def : ItinRW<[GenericWriteFPUSqrtD], [II_SQRT_D]>;
441
442 // rsqrt.[ds], recip.[ds]
443 def : ItinRW<[GenericWriteFPURcpS], [II_RECIP_S, II_RSQRT_S]>;
444 def : ItinRW<[GenericWriteFPURcpD], [II_RECIP_D, II_RSQRT_D]>;
441445
442446 // MIPSR6
443447 // ======
447447 def : InstRW<[P5600WriteFPURsqrtD], (instregex "^FRCP_(W|D)$")>;
448448 def : InstRW<[P5600WriteFPURsqrtD], (instregex "^FRSQRT_(W|D)$")>;
449449
450 def : ItinRW<[P5600WriteFPURsqrtD], [II_RECIP_D, II_RSQRT_D]>;
451 def : ItinRW<[P5600WriteFPURsqrtS], [II_RECIP_S, II_RSQRT_S]>;
452
450453 // fmadd.[wd], fmsubb.[wd], fdiv.[wd], fsqrt.[wd], fmul.[wd], fadd.[wd],
451454 // fsub.[wd]
452455 def : InstRW<[P5600WriteFPUL_MADDSUB], (instregex "^FMADD_(W|D)$")>;
194194 0xea 0xb8 0x40 0x00 # CHECK: sdc1 $f7, 64($10)
195195 0x46 0xb8 0x04 0x00 # CHECK: sdc1 $f2, 4($6)
196196 0x46 0x98 0x04 0x00 # CHECK: swc1 $f2, 4($6)
197 0x46,0x56,0x3b,0x52 # CHECK: recip.d $f18, $f6
198 0x7e,0x54,0x3b,0x12 # CHECK: recip.s $f3, $f30
199 0x5c,0x54,0x3b,0x42 # CHECK: rsqrt.d $f2, $f28
200 0x88,0x54,0x3b,0x02 # CHECK: rsqrt.s $f4, $f8
198198 0x00 0x64 0xcd 0x3c # CHECK: cfc2 $3, $4
199199 0x54 0xa6 0x18 0x3b # CHECK: ctc1 $5, $6
200200 0x00 0xe8 0xdd 0x3c # CHECK: ctc2 $7, $8
201 0x56 0x46 0x52 0x3b # CHECK: recip.d $f18, $f6
202 0x54 0x7e 0x12 0x3b # CHECK: recip.s $f3, $f30
203 0x54 0x5c 0x42 0x3b # CHECK: rsqrt.d $f2, $f28
204 0x54 0x88 0x02 0x3b # CHECK: rsqrt.s $f4, $f8
134134 0x67 0x45 0xc9 0x34 # CHECK: ori $9, $6, 17767
135135 0xc2 0x49 0x26 0x00 # CHECK: rotr $9, $6, 7
136136 0x46 0x48 0xe6 0x00 # CHECK: rotrv $9, $6, $7
137 0x95 0x34 0x20 0x46 # CHECK: recip.d $f18, $f6
138 0xd5 0xf0 0x00 0x46 # CHECK: recip.s $f3, $f30
137139 0x0c 0x73 0x20 0x46 # CHECK: round.w.d $f12, $f14
138140 0x8c 0x39 0x00 0x46 # CHECK: round.w.s $f6, $f7
141 0x96 0xe0 0x20 0x46 # CHECK: rsqrt.d $f2, $f28
142 0x16 0x41 0x00 0x46 # CHECK: rsqrt.s $f4, $f8
139143 0xc6 0x23 0xa4 0xa0 # CHECK: sb $4, 9158($5)
140144 0x06 0x00 0xa4 0xa0 # CHECK: sb $4, 6($5)
141145 0xc6 0x23 0xe9 0xe0 # CHECK: sc $9, 9158($7)
285285 0x46 0x80 0x5e 0xa1 # CHECK: cvt.d.w $f26, $f11
286286 0x46 0x80 0x73 0x21 # CHECK: cvt.d.w $f12, $f14
287287 0x46 0x80 0x7d 0xa0 # CHECK: cvt.s.w $f22, $f15
288 0x46 0x20 0x34 0x95 # CHECK: recip.d $f18, $f6
289 0x46 0x00 0xf0 0xd5 # CHECK: recip.s $f3, $f30
290 0x46 0x20 0xe0 0x96 # CHECK: rsqrt.d $f2, $f28
291 0x46 0x00 0x41 0x16 # CHECK: rsqrt.s $f4, $f8
288292 0x4c 0x52 0xf2 0xa9 # CHECK: msub.d $f10, $f2, $f30, $f18
289293 0x4c 0xa6 0x00 0x05 # CHECK: luxc1 $f0, $6($5)
290294 0x4c 0xac 0xc8 0x30 # CHECK: nmadd.s $f0, $f5, $f25, $f12
6969 0x46 0xda 0xf2 0x2e # CHECK: pul.ps $f8, $f30, $f26
7070 0x46 0xc2 0x46 0x2f # CHECK: puu.ps $f24, $f8, $f2
7171 0x41 0x49 0x98 0x00 # CHECK: rdpgpr s3, t1
72 0x46 0x20 0x34 0x95 # CHECK: recip.d $f18, $f6
73 0x46 0x00 0xf0 0xd5 # CHECK: recip.s $f3, $f30
7472 0x02 0xa7 0x68 0x46 # CHECK: rorv t5, a3, s5
7573 0x46 0x20 0x03 0x08 # CHECK: round.l.d $f12, $f0
7674 0x46 0x00 0x2e 0x08 # CHECK: round.l.s $f24, $f5
77 0x46 0x20 0xe0 0x96 # CHECK: rsqrt.d $f2, $f28
78 0x46 0x00 0x41 0x16 # CHECK: rsqrt.s $f4, $f8
7975 0x46 0xda 0x71 0x01 # CHECK: sub.ps $f4, $f14, $f26
8076 0x46 0x20 0xb5 0x89 # CHECK: trunc.l.d $f22, $f22
8177 0x46 0x00 0xff 0x09 # CHECK: trunc.l.s $f28, $f31
128128 0x78 0x98 0x04 0x4f # CHECK: nmsub.s $f1, $f24, $f19, $f4
129129 0x25 0x18 0x65 0x00 # CHECK: or $3, $3, $5
130130 0x67 0x45 0xc9 0x34 # CHECK: ori $9, $6, 17767
131 0x95 0x34 0x20 0x46 # CHECK: recip.d $f18, $f6
132 0xd5 0xf0 0x00 0x46 # CHECK: recip.s $f3, $f30
131133 0xc2 0x49 0x26 0x00 # CHECK: rotr $9, $6, 7
132134 0x46 0x48 0xe6 0x00 # CHECK: rotrv $9, $6, $7
133135 0x0c 0x73 0x20 0x46 # CHECK: round.w.d $f12, $f14
134136 0x8c 0x39 0x00 0x46 # CHECK: round.w.s $f6, $f7
137 0x96 0xe0 0x20 0x46 # CHECK: rsqrt.d $f2, $f28
138 0x16 0x41 0x00 0x46 # CHECK: rsqrt.s $f4, $f8
135139 0xc6 0x23 0xa4 0xa0 # CHECK: sb $4, 9158($5)
136140 0x06 0x00 0xa4 0xa0 # CHECK: sb $4, 6($5)
137141 0xc6 0x23 0xe9 0xe0 # CHECK: sc $9, 9158($7)
282282 0x46 0x80 0x5e 0xa1 # CHECK: cvt.d.w $f26, $f11
283283 0x46 0x80 0x73 0x21 # CHECK: cvt.d.w $f12, $f14
284284 0x46 0x80 0x7d 0xa0 # CHECK: cvt.s.w $f22, $f15
285 0x46 0x20 0x34 0x95 # CHECK: recip.d $f18, $f6
286 0x46 0x00 0xf0 0xd5 # CHECK: recip.s $f3, $f30
287 0x46 0x20 0xe0 0x96 # CHECK: rsqrt.d $f2, $f28
288 0x46 0x00 0x41 0x16 # CHECK: rsqrt.s $f4, $f8
285289 0x4c 0x52 0xf2 0xa9 # CHECK: msub.d $f10, $f2, $f30, $f18
286290 0x4c 0xa6 0x00 0x05 # CHECK: luxc1 $f0, $6($5)
287291 0x4c 0xac 0xc8 0x30 # CHECK: nmadd.s $f0, $f5, $f25, $f12
6969 0x46 0xda 0xf2 0x2e # CHECK: pul.ps $f8, $f30, $f26
7070 0x46 0xc2 0x46 0x2f # CHECK: puu.ps $f24, $f8, $f2
7171 0x41 0x49 0x98 0x00 # CHECK: rdpgpr s3, t1
72 0x46 0x20 0x34 0x95 # CHECK: recip.d $f18, $f6
73 0x46 0x00 0xf0 0xd5 # CHECK: recip.s $f3, $f30
7472 0x02 0xa7 0x68 0x46 # CHECK: rorv t5, a3, s5
7573 0x46 0x20 0x03 0x08 # CHECK: round.l.d $f12, $f0
7674 0x46 0x00 0x2e 0x08 # CHECK: round.l.s $f24, $f5
77 0x46 0x20 0xe0 0x96 # CHECK: rsqrt.d $f2, $f28
78 0x46 0x00 0x41 0x16 # CHECK: rsqrt.s $f4, $f8
7975 0x46 0xda 0x71 0x01 # CHECK: sub.ps $f4, $f14, $f26
8076 0x46 0x20 0xb5 0x89 # CHECK: trunc.l.d $f22, $f22
8177 0x46 0x00 0xff 0x09 # CHECK: trunc.l.s $f28, $f31
130130 0x67 0x45 0xc9 0x34 # CHECK: ori $9, $6, 17767
131131 0xc2 0x49 0x26 0x00 # CHECK: rotr $9, $6, 7
132132 0x46 0x48 0xe6 0x00 # CHECK: rotrv $9, $6, $7
133 0x95 0x34 0x20 0x46 # CHECK: recip.d $f18, $f6
134 0xd5 0xf0 0x00 0x46 # CHECK: recip.s $f3, $f30
133135 0x0c 0x73 0x20 0x46 # CHECK: round.w.d $f12, $f14
134136 0x8c 0x39 0x00 0x46 # CHECK: round.w.s $f6, $f7
137 0x96 0xe0 0x20 0x46 # CHECK: rsqrt.d $f2, $f28
138 0x16 0x41 0x00 0x46 # CHECK: rsqrt.s $f4, $f8
135139 0xc6 0x23 0xa4 0xa0 # CHECK: sb $4, 9158($5)
136140 0x06 0x00 0xa4 0xa0 # CHECK: sb $4, 6($5)
137141 0xc6 0x23 0xe9 0xe0 # CHECK: sc $9, 9158($7)
283283 0x46 0x80 0x5e 0xa1 # CHECK: cvt.d.w $f26, $f11
284284 0x46 0x80 0x73 0x21 # CHECK: cvt.d.w $f12, $f14
285285 0x46 0x80 0x7d 0xa0 # CHECK: cvt.s.w $f22, $f15
286 0x46 0x20 0x34 0x95 # CHECK: recip.d $f18, $f6
287 0x46 0x00 0xf0 0xd5 # CHECK: recip.s $f3, $f30
288 0x46 0x20 0xe0 0x96 # CHECK: rsqrt.d $f2, $f28
289 0x46 0x00 0x41 0x16 # CHECK: rsqrt.s $f4, $f8
286290 0x4c 0x52 0xf2 0xa9 # CHECK: msub.d $f10, $f2, $f30, $f18
287291 0x4c 0xa6 0x00 0x05 # CHECK: luxc1 $f0, $6($5)
288292 0x4c 0xac 0xc8 0x30 # CHECK: nmadd.s $f0, $f5, $f25, $f12
6969 0x46 0xda 0xf2 0x2e # CHECK: pul.ps $f8, $f30, $f26
7070 0x46 0xc2 0x46 0x2f # CHECK: puu.ps $f24, $f8, $f2
7171 0x41 0x49 0x98 0x00 # CHECK: rdpgpr s3, t1
72 0x46 0x20 0x34 0x95 # CHECK: recip.d $f18, $f6
73 0x46 0x00 0xf0 0xd5 # CHECK: recip.s $f3, $f30
7472 0x02 0xa7 0x68 0x46 # CHECK: rorv t5, a3, s5
7573 0x46 0x20 0x03 0x08 # CHECK: round.l.d $f12, $f0
7674 0x46 0x00 0x2e 0x08 # CHECK: round.l.s $f24, $f5
77 0x46 0x20 0xe0 0x96 # CHECK: rsqrt.d $f2, $f28
78 0x46 0x00 0x41 0x16 # CHECK: rsqrt.s $f4, $f8
7975 0x46 0xda 0x71 0x01 # CHECK: sub.ps $f4, $f14, $f26
8076 0x46 0x20 0xb5 0x89 # CHECK: trunc.l.d $f22, $f22
8177 0x46 0x00 0xff 0x09 # CHECK: trunc.l.s $f28, $f31
124124 0x14 0x10 0x24 0x46 # CHECK: seleqz.d $f0, $f2, $f4
125125 0x17 0x10 0x04 0x46 # CHECK: selnez.s $f0, $f2, $f4
126126 0x17 0x10 0x24 0x46 # CHECK: selnez.d $f0, $f2, $f4
127 0x95 0x34 0x20 0x46 # CHECK: recip.d $f18, $f6
128 0xd5 0xf0 0x00 0x46 # CHECK: recip.s $f3, $f30
127129 0x9a 0x20 0x00 0x46 # CHECK: rint.s $f2, $f4
128130 0x9a 0x20 0x20 0x46 # CHECK: rint.d $f2, $f4
131 0x96 0xe0 0x20 0x46 # CHECK: rsqrt.d $f2, $f28
132 0x16 0x41 0x00 0x46 # CHECK: rsqrt.s $f4, $f8
129133 0x9b 0x20 0x00 0x46 # CHECK: class.s $f2, $f4
130134 0x9b 0x20 0x20 0x46 # CHECK: class.d $f2, $f4
131135 0x09 0x04 0x80 0x00 # CHECK: jr.hb $4
133133 0x46 0xa4 0x18 0x8d # CHECK: cmp.sult.d $f2, $f3, $f4
134134 0x46 0xa4 0x18 0x8e # CHECK: cmp.sle.d $f2, $f3, $f4
135135 0x46 0xa4 0x18 0x8f # CHECK: cmp.sule.d $f2, $f3, $f4
136 0x46 0x20 0x34 0x95 # CHECK: recip.d $f18, $f6
137 0x46 0x00 0xf0 0xd5 # CHECK: recip.s $f3, $f30
138 0x46 0x20 0xe0 0x96 # CHECK: rsqrt.d $f2, $f28
139 0x46 0x00 0x41 0x16 # CHECK: rsqrt.s $f4, $f8
136140 0x42 0x00 0x00 0x58 # CHECK: eretnc
137141 # FIXME: The encode/decode functions are not inverses of each other.
138142 # The immediate should be 8 but the disassembler currently emits 12
154154 0x27 0x38 0x07 0x00 # CHECK: nor $7, $zero, $7
155155 0x25 0x60 0x1d 0x02 # CHECK: or $12, $16, $sp
156156 0x04 0x00 0x42 0x34 # CHECK: ori $2, $2, 4
157 0x08 0x00 0xa1 0xcc # CHECK: pref 1, 8($5)
157 0x08 0x00 0xa1 0xcc # CHECK: pref 1, 8($5)
158 0x95 0x34 0x20 0x46 # CHECK: recip.d $f18, $f6
159 0xd5 0xf0 0x00 0x46 # CHECK: recip.s $f3, $f30
158160 0x08 0x0b 0x20 0x46 # CHECK: round.l.d $f12, $f1
159161 0x48 0x2e 0x00 0x46 # CHECK: round.l.s $f25, $f5
160162 0x8c 0x21 0x20 0x46 # CHECK: round.w.d $f6, $f4
161163 0xcc 0xe6 0x00 0x46 # CHECK: round.w.s $f27, $f28
164 0x96 0xe0 0x20 0x46 # CHECK: rsqrt.d $f2, $f28
165 0x16 0x41 0x00 0x46 # CHECK: rsqrt.s $f4, $f8
162166 0x6f 0xb2 0xd6 0xa1 # CHECK: sb $22, -19857($14)
163167 0xd8 0x49 0x6f 0xe2 # CHECK: sc $15, 18904($19)
164168 0xcd 0xdf 0xaf 0xf3 # CHECK: scd $15, -8243($sp)
256256 0xf5 0xbe 0x77 0x6e # CHECK: sdc1 $f30, 30574($13)
257257 0xfa 0x54 0x5a 0x75 # CHECK: sdc2 $20, 23157($18)
258258 0xfd 0x4c 0x16 0xcb # CHECK: sd $12, 5835($10)
259 0x46 0x20 0x34 0xd5 # CHECK: recip.d $f19, $f6
260 0x46 0x00 0xf0 0xd5 # CHECK: recip.s $f3, $f30
261 0x46 0x20 0xe0 0xd6 # CHECK: rsqrt.d $f3, $f28
262 0x46 0x00 0x41 0x16 # CHECK: rsqrt.s $f4, $f8
3535 0x4c 0xac 0xc8 0x30 # CHECK: nmadd.s $f0, $f5, $f25, $f12
3636 0x4d 0x1e 0x87 0xb9 # CHECK: nmsub.d $f30, $f8, $f16, $f30
3737 0x4f 0x04 0x98 0x78 # CHECK: nmsub.s $f1, $f24, $f19, $f4
38 0x46 0x20 0x34 0xd5 # CHECK: recip.d $f19, $f6
39 0x46 0x00 0xf0 0xd5 # CHECK: recip.s $f3, $f30
40 0x46 0x20 0xe0 0xd6 # CHECK: rsqrt.d $f3, $f28
41 0x46 0x00 0x41 0x16 # CHECK: rsqrt.s $f4, $f8
205205 0x10 0x00 0xa4 0xa8 # CHECK: swl $4, 16($5)
206206 0x10 0x00 0xe6 0xb8 # CHECK: swr $6, 16($7)
207207 0xcf 0x01 0x00 0x00 # CHECK: sync 7
208 0x95 0x34 0x20 0x46 # CHECK: recip.d $f18, $f6
209 0xd5 0xf0 0x00 0x46 # CHECK: recip.s $f3, $f30
210 0x96 0xe0 0x20 0x46 # CHECK: rsqrt.d $f2, $f28
211 0x16 0x41 0x00 0x46 # CHECK: rsqrt.s $f4, $f8
208212 0xc9 0xbd 0x20 0x46 # CHECK: trunc.l.d $f23, $f23
209213 0x09 0xff 0x00 0x46 # CHECK: trunc.l.s $f28, $f31
210214 0x0d 0x73 0x20 0x46 # CHECK: trunc.w.d $f12, $f14
7272 0x46 0xdd 0xd0 0x6d # CHECK: plu.ps $f1, $f26, $f29
7373 0x46 0xda 0xf2 0x6e # CHECK: pul.ps $f9, $f30, $f26
7474 0x46 0xc2 0x4e 0x2f # CHECK: puu.ps $f24, $f9, $f2
75 0x46 0x20 0x34 0xd5 # CHECK: recip.d $f19, $f6
76 0x46 0x00 0xf0 0xd5 # CHECK: recip.s $f3, $f30
77 0x46 0x20 0xe0 0xd6 # CHECK: rsqrt.d $f3, $f28
78 0x46 0x00 0x41 0x16 # CHECK: rsqrt.s $f4, $f8
7975 0x46 0xda 0x71 0x41 # CHECK: sub.ps $f5, $f14, $f26
330330 0x46 0x80 0x5e 0xa1 # CHECK: cvt.d.w $f26, $f11
331331 0x46 0x80 0x73 0x21 # CHECK: cvt.d.w $f12, $f14
332332 0x46 0x80 0x7d 0xa0 # CHECK: cvt.s.w $f22, $f15
333 0x46 0x20 0x34 0xd5 # CHECK: recip.d $f19, $f6
334 0x46 0x00 0xf0 0xd5 # CHECK: recip.s $f3, $f30
335 0x46 0x20 0xe0 0xd6 # CHECK: rsqrt.d $f3, $f28
336 0x46 0x00 0x41 0x16 # CHECK: rsqrt.s $f4, $f8
333337 0x48 0x20 0x50 0x00 # CHECK: dmfc2 $zero, $10, 0
334338 0x48 0xa4 0x50 0x00 # CHECK: dmtc2 $4, $10, 0
335339 0x4d 0x0c 0xe0 0x21 # CHECK: madd.d $f0, $f8, $f28, $f12
192192 0x78 0x98 0x04 0x4f # CHECK: nmsub.s $f1, $f24, $f19, $f4
193193 0x25 0x18 0x65 0x00 # CHECK: or $3, $3, $5
194194 0x67 0x45 0xc9 0x34 # CHECK: ori $9, $6, 17767
195 0x95 0x34 0x20 0x46 # CHECK: recip.d $f18, $f6
196 0xd5 0xf0 0x00 0x46 # CHECK: recip.s $f3, $f30
195197 0xc2 0x49 0x26 0x00 # CHECK: rotr $9, $6, 7
196198 0x46 0x48 0xe6 0x00 # CHECK: rotrv $9, $6, $7
197199 0x08 0x0b 0x20 0x46 # CHECK: round.l.d $f12, $f1
198200 0x48 0x2e 0x00 0x46 # CHECK: round.l.s $f25, $f5
199201 0x0c 0x73 0x20 0x46 # CHECK: round.w.d $f12, $f14
200202 0x8c 0x39 0x00 0x46 # CHECK: round.w.s $f6, $f7
203 0x96 0xe0 0x20 0x46 # CHECK: rsqrt.d $f2, $f28
204 0x16 0x41 0x00 0x46 # CHECK: rsqrt.s $f4, $f8
201205 0xc6 0x23 0xa4 0xa0 # CHECK: sb $4, 9158($5)
202206 0x06 0x00 0xa4 0xa0 # CHECK: sb $4, 6($5)
203207 0xc6 0x23 0xe9 0xe0 # CHECK: sc $9, 9158($7)
362362 0x5d 0x40 0xfc 0x59 # CHECK: bgtzl $10, -3736
363363 0x46 0xa0 0x81 0x21 # CHECK: cvt.d.l $f4, $f16
364364 0x46 0xa0 0xf3 0xe0 # CHECK: cvt.s.l $f15, $f30
365 0x46 0x20 0x34 0x95 # CHECK: recip.d $f18, $f6
366 0x46 0x00 0xf0 0xd5 # CHECK: recip.s $f3, $f30
367 0x46 0x20 0xe0 0x96 # CHECK: rsqrt.d $f2, $f28
368 0x46 0x00 0x41 0x16 # CHECK: rsqrt.s $f4, $f8
365369 0x4c 0xa6 0x00 0x05 # CHECK: luxc1 $f0, $6($5)
366370 0x4c 0xac 0xc8 0x30 # CHECK: nmadd.s $f0, $f5, $f25, $f12
367371 0x4c 0xb8 0x20 0x0d # CHECK: suxc1 $f4, $24($5)
6666 0x46 0xda 0xf2 0x2e # CHECK: pul.ps $f8, $f30, $f26
6767 0x46 0xc2 0x46 0x2f # CHECK: puu.ps $f24, $f8, $f2
6868 0x41 0x49 0x98 0x00 # CHECK: rdpgpr s3, t1
69 0x46 0x20 0x34 0x95 # CHECK: recip.d $f18, $f6
70 0x46 0x00 0xf0 0xd5 # CHECK: recip.s $f3, $f30
7169 0x02 0xa7 0x68 0x46 # CHECK: rorv t5, a3, s5
72 0x46 0x20 0xe0 0x96 # CHECK: rsqrt.d $f2, $f28
73 0x46 0x00 0x41 0x16 # CHECK: rsqrt.s $f4, $f8
7470 0x46 0xda 0x71 0x01 # CHECK: sub.ps $f4, $f14, $f26
7571 0x41 0xcd 0x00 0x00 # CHECK: wrpgpr zero, t5
189189 0x78 0x98 0x04 0x4f # CHECK: nmsub.s $f1, $f24, $f19, $f4
190190 0x25 0x18 0x65 0x00 # CHECK: or $3, $3, $5
191191 0x67 0x45 0xc9 0x34 # CHECK: ori $9, $6, 17767
192 0x95 0x34 0x20 0x46 # CHECK: recip.d $f18, $f6
193 0xd5 0xf0 0x00 0x46 # CHECK: recip.s $f3, $f30
192194 0xc2 0x49 0x26 0x00 # CHECK: rotr $9, $6, 7
193195 0x46 0x48 0xe6 0x00 # CHECK: rotrv $9, $6, $7
194196 0x08 0x0b 0x20 0x46 # CHECK: round.l.d $f12, $f1
195197 0x48 0x2e 0x00 0x46 # CHECK: round.l.s $f25, $f5
196198 0x0c 0x73 0x20 0x46 # CHECK: round.w.d $f12, $f14
197199 0x8c 0x39 0x00 0x46 # CHECK: round.w.s $f6, $f7
200 0x96 0xe0 0x20 0x46 # CHECK: rsqrt.d $f2, $f28
201 0x16 0x41 0x00 0x46 # CHECK: rsqrt.s $f4, $f8
198202 0xc6 0x23 0xa4 0xa0 # CHECK: sb $4, 9158($5)
199203 0x06 0x00 0xa4 0xa0 # CHECK: sb $4, 6($5)
200204 0xc6 0x23 0xe9 0xe0 # CHECK: sc $9, 9158($7)
350350 0x46 0x80 0x5e 0xa1 # CHECK: cvt.d.w $f26, $f11
351351 0x46 0x80 0x73 0x21 # CHECK: cvt.d.w $f12, $f14
352352 0x46 0x80 0x7d 0xa0 # CHECK: cvt.s.w $f22, $f15
353 0x48 0x20 0x50 0x00 # CHECK: dmfc2 $zero, $10, 0
354 0x48 0xa4 0x50 0x00 # CHECK: dmtc2 $4, $10, 0
353 0x46 0x20 0x34 0x95 # CHECK: recip.d $f18, $f6
354 0x46 0x00 0xf0 0xd5 # CHECK: recip.s $f3, $f30
355 0x46 0x20 0xe0 0x96 # CHECK: rsqrt.d $f2, $f28
356 0x46 0x00 0x41 0x16 # CHECK: rsqrt.s $f4, $f8
357 0x48 0x20 0x50 0x00 # CHECK: dmfc2 $zero, $10, 0
358 0x48 0xa4 0x50 0x00 # CHECK: dmtc2 $4, $10, 0
355359 0x4d 0x0c 0xe0 0x21 # CHECK: madd.d $f0, $f8, $f28, $f12
356360 0x4d 0xbb 0x0d 0xe0 # CHECK: madd.s $f23, $f13, $f1, $f27
357361 0x51 0xd3 0x0c 0x40 # CHECK: beql $14, $19, 12548
6666 0x46 0xda 0xf2 0x2e # CHECK: pul.ps $f8, $f30, $f26
6767 0x46 0xc2 0x46 0x2f # CHECK: puu.ps $f24, $f8, $f2
6868 0x41 0x49 0x98 0x00 # CHECK: rdpgpr s3, t1
69 0x46 0x20 0x34 0x95 # CHECK: recip.d $f18, $f6
70 0x46 0x00 0xf0 0xd5 # CHECK: recip.s $f3, $f30
7169 0x02 0xa7 0x68 0x46 # CHECK: rorv t5, a3, s5
72 0x46 0x20 0xe0 0x96 # CHECK: rsqrt.d $f2, $f28
73 0x46 0x00 0x41 0x16 # CHECK: rsqrt.s $f4, $f8
7470 0x46 0xda 0x71 0x01 # CHECK: sub.ps $f4, $f14, $f26
7571 0x41 0xcd 0x00 0x00 # CHECK: wrpgpr zero, t5
189189 0x78 0x98 0x04 0x4f # CHECK: nmsub.s $f1, $f24, $f19, $f4
190190 0x25 0x18 0x65 0x00 # CHECK: or $3, $3, $5
191191 0x67 0x45 0xc9 0x34 # CHECK: ori $9, $6, 17767
192 0x95 0x34 0x20 0x46 # CHECK: recip.d $f18, $f6
193 0xd5 0xf0 0x00 0x46 # CHECK: recip.s $f3, $f30
192194 0xc2 0x49 0x26 0x00 # CHECK: rotr $9, $6, 7
193195 0x46 0x48 0xe6 0x00 # CHECK: rotrv $9, $6, $7
194196 0x08 0x0b 0x20 0x46 # CHECK: round.l.d $f12, $f1
195197 0x48 0x2e 0x00 0x46 # CHECK: round.l.s $f25, $f5
196198 0x0c 0x73 0x20 0x46 # CHECK: round.w.d $f12, $f14
197199 0x8c 0x39 0x00 0x46 # CHECK: round.w.s $f6, $f7
200 0x96 0xe0 0x20 0x46 # CHECK: rsqrt.d $f2, $f28
201 0x16 0x41 0x00 0x46 # CHECK: rsqrt.s $f4, $f8
198202 0xc6 0x23 0xa4 0xa0 # CHECK: sb $4, 9158($5)
199203 0x06 0x00 0xa4 0xa0 # CHECK: sb $4, 6($5)
200204 0xc6 0x23 0xe9 0xe0 # CHECK: sc $9, 9158($7)
350350 0x46 0x80 0x5e 0xa1 # CHECK: cvt.d.w $f26, $f11
351351 0x46 0x80 0x73 0x21 # CHECK: cvt.d.w $f12, $f14
352352 0x46 0x80 0x7d 0xa0 # CHECK: cvt.s.w $f22, $f15
353 0x46 0x20 0x34 0x95 # CHECK: recip.d $f18, $f6
354 0x46 0x00 0xf0 0xd5 # CHECK: recip.s $f3, $f30
355 0x46 0x20 0xe0 0x96 # CHECK: rsqrt.d $f2, $f28
356 0x46 0x00 0x41 0x16 # CHECK: rsqrt.s $f4, $f8
353357 0x48 0x20 0x50 0x00 # CHECK: dmfc2 $zero, $10, 0
354358 0x48 0xa4 0x50 0x00 # CHECK: dmtc2 $4, $10, 0
355359 0x4d 0x0c 0xe0 0x21 # CHECK: madd.d $f0, $f8, $f28, $f12
6666 0x46 0xda 0xf2 0x2e # CHECK: pul.ps $f8, $f30, $f26
6767 0x46 0xc2 0x46 0x2f # CHECK: puu.ps $f24, $f8, $f2
6868 0x41 0x49 0x98 0x00 # CHECK: rdpgpr s3, t1
69 0x46 0x20 0x34 0x95 # CHECK: recip.d $f18, $f6
70 0x46 0x00 0xf0 0xd5 # CHECK: recip.s $f3, $f30
7169 0x02 0xa7 0x68 0x46 # CHECK: rorv t5, a3, s5
72 0x46 0x20 0xe0 0x96 # CHECK: rsqrt.d $f2, $f28
73 0x46 0x00 0x41 0x16 # CHECK: rsqrt.s $f4, $f8
7470 0x46 0xda 0x71 0x01 # CHECK: sub.ps $f4, $f14, $f26
7571 0x41 0xcd 0x00 0x00 # CHECK: wrpgpr zero, t5
155155 0x99 0x10 0x64 0x00 # CHECK: mulu $2, $3, $4
156156 0x04 0x00 0x42 0x34 # CHECK: ori $2, $2, 4
157157 0x35 0x04 0xa1 0x7c # CHECK: pref 1, 8($5)
158 0x95 0x34 0x20 0x46 # CHECK: recip.d $f18, $f6
159 0xd5 0xf0 0x00 0x46 # CHECK: recip.s $f3, $f30
158160 0x9a 0x20 0x20 0x46 # CHECK: rint.d $f2, $f4
159161 0x9a 0x20 0x00 0x46 # CHECK: rint.s $f2, $f4
162 0x96 0xe0 0x20 0x46 # CHECK: rsqrt.d $f2, $f28
163 0x16 0x41 0x00 0x46 # CHECK: rsqrt.s $f4, $f8
160164 0x26 0xec 0x6f 0x7e # CHECK: sc $15, -40($19)
161165 0xa7 0xe6 0xaf 0x7f # CHECK: scd $15, -51($sp)
162166 0x0e 0x00 0x00 0x00 # CHECK: sdbbp
152152 0x46 0xa4 0x18 0x8d # CHECK: cmp.sult.d $f2, $f3, $f4
153153 0x46 0xa4 0x18 0x8e # CHECK: cmp.sle.d $f2, $f3, $f4
154154 0x46 0xa4 0x18 0x8f # CHECK: cmp.sule.d $f2, $f3, $f4
155 0x46 0x20 0x34 0x95 # CHECK: recip.d $f18, $f6
156 0x46 0x00 0xf0 0xd5 # CHECK: recip.s $f3, $f30
157 0x46 0x20 0xe0 0x96 # CHECK: rsqrt.d $f2, $f28
158 0x46 0x00 0x41 0x16 # CHECK: rsqrt.s $f4, $f8
155159 0x42 0x00 0x00 0x58 # CHECK: eretnc
156160 # FIXME: The encode/decode functions are not inverses of each other.
157161 # The immediate should be 8 but the disassembler currently emits 12
202202 cfc2 $3, $4 # CHECK: cfc2 $3, $4 # encoding: [0x00,0x64,0xcd,0x3c]
203203 ctc1 $5, $6 # CHECK: ctc1 $5, $6 # encoding: [0x54,0xa6,0x18,0x3b]
204204 ctc2 $7, $8 # CHECK: ctc2 $7, $8 # encoding: [0x00,0xe8,0xdd,0x3c]
205 recip.s $f2, $f4 # CHECK: recip.s $f2, $f4 # encoding: [0x54,0x44,0x12,0x3b]
206 recip.d $f2, $f4 # CHECK: recip.d $f2, $f4 # encoding: [0x54,0x44,0x52,0x3b]
207 rsqrt.s $f3, $f5 # CHECK: rsqrt.s $f3, $f5 # encoding: [0x54,0x65,0x02,0x3b]
208 rsqrt.d $f2, $f4 # CHECK: rsqrt.d $f2, $f4 # encoding: [0x54,0x44,0x42,0x3b]
101101 pul.ps $f9,$f30,$f26
102102 puu.ps $f24,$f9,$f2
103103 rdpgpr $s3,$9
104 recip.d $f19,$f6
105 recip.s $f3,$f30
106104 rorv $13,$a3,$s5
107105 round.l.d $f12,$f1
108106 round.l.s $f25,$f5
109 rsqrt.d $f3,$f28
110 rsqrt.s $f4,$f8
111107 sbe $s7,33($s1)
112108 sce $sp,189($10)
113109 she $24,105($v0)
166166 # CHECK-NEXT: .set mips32r2
167167 # CHECK-NEXT: rdhwr $sp, $11
168168 # CHECK-NEXT: .set pop # encoding: [0x7c,0x1d,0x58,0x3b]
169 recip.d $f19,$f6 # CHECK: recip.d $f19, $f6 # encoding: [0x46,0x20,0x34,0xd5]
170 recip.s $f3,$f30 # CHECK: recip.s $f3, $f30 # encoding: [0x46,0x00,0xf0,0xd5]
169171 rotr $1,15 # CHECK: rotr $1, $1, 15 # encoding: [0x00,0x21,0x0b,0xc2]
170172 rotr $1,$14,15 # CHECK: rotr $1, $14, 15 # encoding: [0x00,0x2e,0x0b,0xc2]
171173 rotrv $1,$14,$15 # CHECK: rotrv $1, $14, $15 # encoding: [0x01,0xee,0x08,0x46]
172174 round.w.d $f6,$f4
173175 round.w.s $f27,$f28
176 rsqrt.s $f0,$f4 # CHECK: rsqrt.s $f0, $f4 # encoding: [0x46,0x00,0x20,0x16]
177 rsqrt.d $f2,$f6 # CHECK: rsqrt.d $f2, $f6 # encoding: [0x46,0x20,0x30,0x96]
174178 s.s $f2, 8($3) # CHECK: swc1 $f2, 8($3) # encoding: [0xe4,0x62,0x00,0x08]
175179 s.d $f2, 8($3) # CHECK: sdc1 $f2, 8($3) # encoding: [0xf4,0x62,0x00,0x08]
176180 sb $s6,-19857($14)
101101 pul.ps $f9,$f30,$f26
102102 puu.ps $f24,$f9,$f2
103103 rdpgpr $s3,$9
104 recip.d $f19,$f6
105 recip.s $f3,$f30
106104 rorv $13,$a3,$s5
107105 round.l.d $f12,$f1
108106 round.l.s $f25,$f5
109 rsqrt.d $f3,$f28
110 rsqrt.s $f4,$f8
111107 sbe $s7,33($s1)
112108 sce $sp,189($10)
113109 she $24,105($v0)
166166 # CHECK-NEXT: .set mips32r2
167167 # CHECK-NEXT: rdhwr $sp, $11
168168 # CHECK-NEXT: .set pop # encoding: [0x7c,0x1d,0x58,0x3b]
169 recip.d $f19,$f6 # CHECK: recip.d $f19, $f6 # encoding: [0x46,0x20,0x34,0xd5]
170 recip.s $f3,$f30 # CHECK: recip.s $f3, $f30 # encoding: [0x46,0x00,0xf0,0xd5]
169171 rotr $1,15 # CHECK: rotr $1, $1, 15 # encoding: [0x00,0x21,0x0b,0xc2]
170172 rotr $1,$14,15 # CHECK: rotr $1, $14, 15 # encoding: [0x00,0x2e,0x0b,0xc2]
171173 rotrv $1,$14,$15 # CHECK: rotrv $1, $14, $15 # encoding: [0x01,0xee,0x08,0x46]
172174 round.w.d $f6,$f4
173175 round.w.s $f27,$f28
176 rsqrt.s $f0,$f4 # CHECK: rsqrt.s $f0, $f4 # encoding: [0x46,0x00,0x20,0x16]
177 rsqrt.d $f2,$f6 # CHECK: rsqrt.d $f2, $f6 # encoding: [0x46,0x20,0x30,0x96]
174178 s.s $f2, 8($3) # CHECK: swc1 $f2, 8($3) # encoding: [0xe4,0x62,0x00,0x08]
175179 s.d $f2, 8($3) # CHECK: sdc1 $f2, 8($3) # encoding: [0xf4,0x62,0x00,0x08]
176180 sb $s6,-19857($14)
101101 pul.ps $f9,$f30,$f26
102102 puu.ps $f24,$f9,$f2
103103 rdpgpr $s3,$9
104 recip.d $f19,$f6
105 recip.s $f3,$f30
106104 rorv $13,$a3,$s5
107105 round.l.d $f12,$f1
108106 round.l.s $f25,$f5
109 rsqrt.d $f3,$f28
110 rsqrt.s $f4,$f8
111107 sbe $s7,33($s1)
112108 sce $sp,189($10)
113109 she $24,105($v0)
167167 # CHECK-NEXT: .set mips32r2
168168 # CHECK-NEXT: rdhwr $sp, $11
169169 # CHECK-NEXT: .set pop # encoding: [0x7c,0x1d,0x58,0x3b]
170 recip.d $f19,$f6 # CHECK: recip.d $f19, $f6 # encoding: [0x46,0x20,0x34,0xd5]
171 recip.s $f3,$f30 # CHECK: recip.s $f3, $f30 # encoding: [0x46,0x00,0xf0,0xd5]
170172 rotr $1,15 # CHECK: rotr $1, $1, 15 # encoding: [0x00,0x21,0x0b,0xc2]
171173 rotr $1,$14,15 # CHECK: rotr $1, $14, 15 # encoding: [0x00,0x2e,0x0b,0xc2]
172174 rotrv $1,$14,$15 # CHECK: rotrv $1, $14, $15 # encoding: [0x01,0xee,0x08,0x46]
173175 round.w.d $f6,$f4
174176 round.w.s $f27,$f28
177 rsqrt.s $f0,$f4 # CHECK: rsqrt.s $f0, $f4 # encoding: [0x46,0x00,0x20,0x16]
178 rsqrt.d $f2,$f6 # CHECK: rsqrt.d $f2, $f6 # encoding: [0x46,0x20,0x30,0x96]
175179 s.s $f2, 8($3) # CHECK: swc1 $f2, 8($3) # encoding: [0xe4,0x62,0x00,0x08]
176180 s.d $f2, 8($3) # CHECK: sdc1 $f2, 8($3) # encoding: [0xf4,0x62,0x00,0x08]
177181 sb $s6,-19857($14)
138138 # CHECK-NEXT: .set mips32r2
139139 # CHECK-NEXT: rdhwr $sp, $11
140140 # CHECK-NEXT: .set pop # encoding: [0x7c,0x1d,0x58,0x3b]
141 recip.d $f19,$f6 # CHECK: recip.d $f19, $f6 # encoding: [0x46,0x20,0x34,0xd5]
142 recip.s $f3,$f30 # CHECK: recip.s $f3, $f30 # encoding: [0x46,0x00,0xf0,0xd5]
141143 s.s $f2, 8($3) # CHECK: swc1 $f2, 8($3) # encoding: [0xe4,0x62,0x00,0x08]
142144 s.d $f2, 8($3) # CHECK: sdc1 $f2, 8($3) # encoding: [0xf4,0x62,0x00,0x08]
143145 sel.d $f0,$f1,$f2 # CHECK: sel.d $f0, $f1, $f2 # encoding: [0x46,0x22,0x08,0x10]
184186 sc $15,-40($s3) # CHECK: sc $15, -40($19) # encoding: [0x7e,0x6f,0xec,0x26]
185187 clo $11,$a1 # CHECK: clo $11, $5 # encoding: [0x00,0xa0,0x58,0x51]
186188 clz $sp,$gp # CHECK: clz $sp, $gp # encoding: [0x03,0x80,0xe8,0x50]
189 rsqrt.s $f0,$f4 # CHECK: rsqrt.s $f0, $f4 # encoding: [0x46,0x00,0x20,0x16]
190 rsqrt.d $f2,$f6 # CHECK: rsqrt.d $f2, $f6 # encoding: [0x46,0x20,0x30,0x96]
187191 sgt $4, $5 # CHECK: slt $4, $5, $4 # encoding: [0x00,0xa4,0x20,0x2a]
188192 sgt $4, $5, $6 # CHECK: slt $4, $6, $5 # encoding: [0x00,0xc5,0x20,0x2a]
189193 sgtu $4, $5 # CHECK: sltu $4, $5, $4 # encoding: [0x00,0xa4,0x20,0x2b]
3434 c.ult.s $fcc7,$f24,$f10
3535 c.un.d $fcc6,$f23,$f24
3636 c.un.s $fcc1,$f30,$f4
37 recip.d $f19,$f6
38 recip.s $f3,$f30
39 rsqrt.d $f3,$f28
40 rsqrt.s $f4,$f8
195195 or $12,$s0,$sp
196196 or $2, 4 # CHECK: ori $2, $2, 4 # encoding: [0x34,0x42,0x00,0x04]
197197 pref 1, 8($5) # CHECK: pref 1, 8($5) # encoding: [0xcc,0xa1,0x00,0x08]
198 recip.d $f19,$f6 # CHECK: recip.d $f19, $f6 # encoding: [0x46,0x20,0x34,0xd5]
199 recip.s $f3,$f30 # CHECK: recip.s $f3, $f30 # encoding: [0x46,0x00,0xf0,0xd5]
198200 round.l.d $f12,$f1
199201 round.l.s $f25,$f5
200202 round.w.d $f6,$f4
201203 round.w.s $f27,$f28
204 rsqrt.s $f0,$f4 # CHECK: rsqrt.s $f0, $f4 # encoding: [0x46,0x00,0x20,0x16]
205 rsqrt.d $f2,$f6 # CHECK: rsqrt.d $f2, $f6 # encoding: [0x46,0x20,0x30,0x96]
202206 s.s $f2, 8($3) # CHECK: swc1 $f2, 8($3) # encoding: [0xe4,0x62,0x00,0x08]
203207 s.d $f2, 8($3) # CHECK: sdc1 $f2, 8($3) # encoding: [0xf4,0x62,0x00,0x08]
204208 sb $s6,-19857($14)
7171 plu.ps $f1,$f26,$f29
7272 pul.ps $f9,$f30,$f26
7373 puu.ps $f24,$f9,$f2
74 recip.d $f19,$f6
75 recip.s $f3,$f30
76 rsqrt.d $f3,$f28
77 rsqrt.s $f4,$f8
7874 sub.ps $f5,$f14,$f26
196196 or $12,$s0,$sp
197197 or $2, 4 # CHECK: ori $2, $2, 4 # encoding: [0x34,0x42,0x00,0x04]
198198 pref 1, 8($5) # CHECK: pref 1, 8($5) # encoding: [0xcc,0xa1,0x00,0x08]
199 recip.d $f19,$f6 # CHECK: recip.d $f19, $f6 # encoding: [0x46,0x20,0x34,0xd5]
200 recip.s $f3,$f30 # CHECK: recip.s $f3, $f30 # encoding: [0x46,0x00,0xf0,0xd5]
199201 round.l.d $f12,$f1
200202 round.l.s $f25,$f5
201203 round.w.d $f6,$f4
202204 round.w.s $f27,$f28
205 rsqrt.s $f0,$f4 # CHECK: rsqrt.s $f0, $f4 # encoding: [0x46,0x00,0x20,0x16]
206 rsqrt.d $f2,$f6 # CHECK: rsqrt.d $f2, $f6 # encoding: [0x46,0x20,0x30,0x96]
203207 s.s $f2, 8($3) # CHECK: swc1 $f2, 8($3) # encoding: [0xe4,0x62,0x00,0x08]
204208 s.d $f2, 8($3) # CHECK: sdc1 $f2, 8($3) # encoding: [0xf4,0x62,0x00,0x08]
205209 sb $s6,-19857($14)
7878 plu.ps $f1,$f26,$f29
7979 pul.ps $f9,$f30,$f26
8080 puu.ps $f24,$f9,$f2
81 recip.d $f19,$f6
82 recip.s $f3,$f30
83 rsqrt.d $f3,$f28
84 rsqrt.s $f4,$f8
8581 sub.ps $f5,$f14,$f26
212212 or $12,$s0,$sp
213213 or $2, 4 # CHECK: ori $2, $2, 4 # encoding: [0x34,0x42,0x00,0x04]
214214 pref 1, 8($5) # CHECK: pref 1, 8($5) # encoding: [0xcc,0xa1,0x00,0x08]
215 recip.d $f19,$f6 # CHECK: recip.d $f19, $f6 # encoding: [0x46,0x20,0x34,0xd5]
216 recip.s $f3,$f30 # CHECK: recip.s $f3, $f30 # encoding: [0x46,0x00,0xf0,0xd5]
215217 round.l.d $f12,$f1
216218 round.l.s $f25,$f5
217219 round.w.d $f6,$f4
218220 round.w.s $f27,$f28
221 rsqrt.s $f0,$f4 # CHECK: rsqrt.s $f0, $f4 # encoding: [0x46,0x00,0x20,0x16]
222 rsqrt.d $f2,$f6 # CHECK: rsqrt.d $f2, $f6 # encoding: [0x46,0x20,0x30,0x96]
219223 s.s $f2, 8($3) # CHECK: swc1 $f2, 8($3) # encoding: [0xe4,0x62,0x00,0x08]
220224 s.d $f2, 8($3) # CHECK: sdc1 $f2, 8($3) # encoding: [0xf4,0x62,0x00,0x08]
221225 sb $s6,-19857($14)
100100 pul.ps $f9,$f30,$f26
101101 puu.ps $f24,$f9,$f2
102102 rdpgpr $s3,$9
103 recip.d $f19,$f6
104 recip.s $f3,$f30
105103 rorv $13,$a3,$s5
106 rsqrt.d $f3,$f28
107 rsqrt.s $f4,$f8
108104 sbe $s7,33($s1)
109105 sce $sp,189($10)
110106 she $24,105($v0)
233233 # CHECK-NEXT: .set mips32r2
234234 # CHECK-NEXT: rdhwr $sp, $11
235235 # CHECK-NEXT: .set pop # encoding: [0x7c,0x1d,0x58,0x3b]
236 recip.d $f19,$f6 # CHECK: recip.d $f19, $f6 # encoding: [0x46,0x20,0x34,0xd5]
237 recip.s $f3,$f30 # CHECK: recip.s $f3, $f30 # encoding: [0x46,0x00,0xf0,0xd5]
236238 rotr $1,15 # CHECK: rotr $1, $1, 15 # encoding: [0x00,0x21,0x0b,0xc2]
237239 rotr $1,$14,15 # CHECK: rotr $1, $14, 15 # encoding: [0x00,0x2e,0x0b,0xc2]
238240 rotrv $1,$14,$15 # CHECK: rotrv $1, $14, $15 # encoding: [0x01,0xee,0x08,0x46]
240242 round.l.s $f25,$f5
241243 round.w.d $f6,$f4
242244 round.w.s $f27,$f28
245 rsqrt.s $f0,$f4 # CHECK: rsqrt.s $f0, $f4 # encoding: [0x46,0x00,0x20,0x16]
246 rsqrt.d $f2,$f6 # CHECK: rsqrt.d $f2, $f6 # encoding: [0x46,0x20,0x30,0x96]
243247 s.s $f2, 8($3) # CHECK: swc1 $f2, 8($3) # encoding: [0xe4,0x62,0x00,0x08]
244248 s.d $f2, 8($3) # CHECK: sdc1 $f2, 8($3) # encoding: [0xf4,0x62,0x00,0x08]
245249 sb $s6,-19857($14)
103103 pul.ps $f9,$f30,$f26
104104 puu.ps $f24,$f9,$f2
105105 rdpgpr $s3,$9
106 recip.d $f19,$f6
107 recip.s $f3,$f30
108106 rorv $13,$a3,$s5
109 rsqrt.d $f3,$f28
110 rsqrt.s $f4,$f8
111107 sbe $s7,33($s1)
112108 sce $sp,189($10)
113109 she $24,105($v0)
233233 # CHECK-NEXT: .set mips32r2
234234 # CHECK-NEXT: rdhwr $sp, $11
235235 # CHECK-NEXT: .set pop # encoding: [0x7c,0x1d,0x58,0x3b]
236 recip.d $f19,$f6 # CHECK: recip.d $f19, $f6 # encoding: [0x46,0x20,0x34,0xd5]
237 recip.s $f3,$f30 # CHECK: recip.s $f3, $f30 # encoding: [0x46,0x00,0xf0,0xd5]
236238 rotr $1,15 # CHECK: rotr $1, $1, 15 # encoding: [0x00,0x21,0x0b,0xc2]
237239 rotr $1,$14,15 # CHECK: rotr $1, $14, 15 # encoding: [0x00,0x2e,0x0b,0xc2]
238240 rotrv $1,$14,$15 # CHECK: rotrv $1, $14, $15 # encoding: [0x01,0xee,0x08,0x46]
240242 round.l.s $f25,$f5
241243 round.w.d $f6,$f4
242244 round.w.s $f27,$f28
245 rsqrt.s $f0,$f4 # CHECK: rsqrt.s $f0, $f4 # encoding: [0x46,0x00,0x20,0x16]
246 rsqrt.d $f2,$f6 # CHECK: rsqrt.d $f2, $f6 # encoding: [0x46,0x20,0x30,0x96]
243247 s.s $f2, 8($3) # CHECK: swc1 $f2, 8($3) # encoding: [0xe4,0x62,0x00,0x08]
244248 s.d $f2, 8($3) # CHECK: sdc1 $f2, 8($3) # encoding: [0xf4,0x62,0x00,0x08]
245249 sb $s6,-19857($14)
103103 pul.ps $f9,$f30,$f26
104104 puu.ps $f24,$f9,$f2
105105 rdpgpr $s3,$9
106 recip.d $f19,$f6
107 recip.s $f3,$f30
108106 rorv $13,$a3,$s5
109 rsqrt.d $f3,$f28
110 rsqrt.s $f4,$f8
111107 sbe $s7,33($s1)
112108 sce $sp,189($10)
113109 she $24,105($v0)
234234 # CHECK-NEXT: .set mips32r2
235235 # CHECK-NEXT: rdhwr $sp, $11
236236 # CHECK-NEXT: .set pop # encoding: [0x7c,0x1d,0x58,0x3b]
237 recip.d $f19,$f6 # CHECK: recip.d $f19, $f6 # encoding: [0x46,0x20,0x34,0xd5]
238 recip.s $f3,$f30 # CHECK: recip.s $f3, $f30 # encoding: [0x46,0x00,0xf0,0xd5]
237239 rotr $1,15 # CHECK: rotr $1, $1, 15 # encoding: [0x00,0x21,0x0b,0xc2]
238240 rotr $1,$14,15 # CHECK: rotr $1, $14, 15 # encoding: [0x00,0x2e,0x0b,0xc2]
239241 rotrv $1,$14,$15 # CHECK: rotrv $1, $14, $15 # encoding: [0x01,0xee,0x08,0x46]
241243 round.l.s $f25,$f5
242244 round.w.d $f6,$f4
243245 round.w.s $f27,$f28
246 rsqrt.s $f0,$f4 # CHECK: rsqrt.s $f0, $f4 # encoding: [0x46,0x00,0x20,0x16]
247 rsqrt.d $f2,$f6 # CHECK: rsqrt.d $f2, $f6 # encoding: [0x46,0x20,0x30,0x96]
244248 s.s $f2, 8($3) # CHECK: swc1 $f2, 8($3) # encoding: [0xe4,0x62,0x00,0x08]
245249 s.d $f2, 8($3) # CHECK: sdc1 $f2, 8($3) # encoding: [0xf4,0x62,0x00,0x08]
246250 sb $s6,-19857($14)
193193 # CHECK-NEXT: .set mips32r2
194194 # CHECK-NEXT: rdhwr $sp, $11
195195 # CHECK-NEXT: .set pop # encoding: [0x7c,0x1d,0x58,0x3b]
196 recip.d $f19,$f6 # CHECK: recip.d $f19, $f6 # encoding: [0x46,0x20,0x34,0xd5]
197 recip.s $f3,$f30 # CHECK: recip.s $f3, $f30 # encoding: [0x46,0x00,0xf0,0xd5]
196198 rint.d $f2, $f4 # CHECK: rint.d $f2, $f4 # encoding: [0x46,0x20,0x20,0x9a]
197199 rint.s $f2, $f4 # CHECK: rint.s $f2, $f4 # encoding: [0x46,0x00,0x20,0x9a]
200 rsqrt.s $f0,$f4 # CHECK: rsqrt.s $f0, $f4 # encoding: [0x46,0x00,0x20,0x16]
201 rsqrt.d $f2,$f6 # CHECK: rsqrt.d $f2, $f6 # encoding: [0x46,0x20,0x30,0x96]
198202 s.s $f2, 8($3) # CHECK: swc1 $f2, 8($3) # encoding: [0xe4,0x62,0x00,0x08]
199203 s.d $f2, 8($3) # CHECK: sdc1 $f2, 8($3) # encoding: [0xf4,0x62,0x00,0x08]
200204 sc $15,-40($s3) # CHECK: sc $15, -40($19) # encoding: [0x7e,0x6f,0xec,0x26]