#include <stdio.h>
+#include <math.h>
+#include <stdlib.h>
unsigned long long out[2];
0x3c66f5a5c14efc00,
};
+#define EPS 0.000001
+
+union {
+ unsigned long long i[2];
+ double d[2];
+ float f[4];
+} frsqrt_out, frsqrt_exp;
+
+unsigned withinEpsOfF(float* p_out, float* p_exp, unsigned long long* data, unsigned offset) {
+ unsigned pair1_nan = isnan(p_out[2]) && isnan(p_exp[0]);
+ unsigned pair2_nan = isnan(p_out[3]) && isnan(p_exp[1]);
+ unsigned pair3_nan = isnan(p_out[0]) && isnan(p_exp[2]);
+ unsigned pair4_nan = isnan(p_out[1]) && isnan(p_exp[3]);
+ unsigned pair1_sub = fpclassify(*(((float*)data) + offset/4 )) == FP_SUBNORMAL;
+ unsigned pair2_sub = fpclassify(*(((float*)data) + offset/4 + 1)) == FP_SUBNORMAL;
+ unsigned pair3_sub = fpclassify(*(((float*)data) + offset/4 + 2)) == FP_SUBNORMAL;
+ unsigned pair4_sub = fpclassify(*(((float*)data) + offset/4 + 3)) == FP_SUBNORMAL;
+ if (pair1_sub || pair2_sub || pair3_sub || pair4_sub) {
+ unsigned p_out2_int = *(unsigned*)&p_out[2];
+ unsigned p_exp0_int = *(unsigned*)&p_exp[0];
+ unsigned p_out3_int = *(unsigned*)&p_out[3];
+ unsigned p_exp1_int = *(unsigned*)&p_exp[1];
+ unsigned p_out0_int = *(unsigned*)&p_out[0];
+ unsigned p_exp2_int = *(unsigned*)&p_exp[2];
+ unsigned p_out1_int = *(unsigned*)&p_out[1];
+ unsigned p_exp3_int = *(unsigned*)&p_exp[3];
+ pair1_sub = abs(p_out2_int - p_exp0_int) <= 1;
+ pair2_sub = abs(p_out3_int - p_exp1_int) <= 1;
+ pair3_sub = abs(p_out0_int - p_exp2_int) <= 1;
+ pair4_sub = abs(p_out1_int - p_exp3_int) <= 1;
+ }
+ return (pair1_nan || pair1_sub || ((p_out[2] <= p_exp[0] + EPS) && (p_out[2] >= p_exp[0] - EPS))) &&
+ (pair2_nan || pair2_sub || ((p_out[3] <= p_exp[1] + EPS) && (p_out[3] >= p_exp[1] - EPS))) &&
+ (pair3_nan || pair3_sub || ((p_out[0] <= p_exp[2] + EPS) && (p_out[0] >= p_exp[2] - EPS))) &&
+ (pair4_nan || pair4_sub || ((p_out[1] <= p_exp[3] + EPS) && (p_out[1] >= p_exp[3] - EPS)));
+
+}
+unsigned withinEpsOfD(double* p_out, double* p_exp, unsigned long long* data, unsigned offset) {
+ unsigned pair1_nan = isnan(p_out[0]) && isnan(p_exp[1]);
+ unsigned pair2_nan = isnan(p_out[1]) && isnan(p_exp[0]);
+ unsigned pair1_sub = fpclassify(*(((double*)data) + offset/8 )) == FP_SUBNORMAL;
+ unsigned pair2_sub = fpclassify(*(((double*)data) + offset/8 + 1)) == FP_SUBNORMAL;
+ if (pair1_sub || pair2_sub) {
+ unsigned long p_out0_int = *(unsigned long*)&p_out[0];
+ unsigned long p_exp1_int = *(unsigned long*)&p_exp[1];
+ unsigned long p_out1_int = *(unsigned long*)&p_out[1];
+ unsigned long p_exp0_int = *(unsigned long*)&p_exp[0];
+ pair1_sub = labs(p_out0_int - p_exp1_int) <= 1;
+ pair2_sub = labs(p_out1_int - p_exp0_int) <= 1;
+ }
+ return (pair1_nan || pair1_sub || ((p_out[0] <= p_exp[1] + EPS) && (p_out[0] >= p_exp[1] - EPS))) &&
+ (pair2_nan || pair2_sub || ((p_out[1] <= p_exp[0] + EPS) && (p_out[1] >= p_exp[0] - EPS)));
+}
+
#define TEST_3RF(instruction, data, offset1, offset2, WD, WS, WT) \
{ \
__asm__ volatile ( \
data[offset / 8 + 1], data[offset / 8], msacsr); \
}
+#define TEST_2RF_FRSQRT_W(instruction, data, offset, WD, WS, \
+ exp_part1, exp_part2) \
+{ \
+ frsqrt_exp.i[0] = exp_part1; \
+ frsqrt_exp.i[1] = exp_part2; \
+ __asm__ volatile ( \
+ ".set push;\n\t" \
+ ".set noreorder;\n\t" \
+ "ctcmsa $1, %2\n\t" \
+ "move $t0, %0\n\t" \
+ "ld.d $"#WD", "#offset"($t0)\n\t" \
+ "xori.b $"#WD", $"#WD", 0xff\n\t" \
+ "ld.d $"#WS", "#offset"($t0)\n\t" \
+ instruction" $"#WD", $"#WS"\n\t" \
+ "move $t0, %1\n\t" \
+ "st.d $"#WD", 0($t0)\n\t" \
+ "cfcmsa %2, $1\n\t" \
+ ".set pop;\n\t" \
+ : \
+ : "r" (data), "r" (frsqrt_out.f), "r"(msacsr) \
+ : "t0", "memory" \
+ ); \
+ if(withinEpsOfF(frsqrt_out.f, frsqrt_exp.f, data, offset)) \
+ printf(instruction" $"#WD", $"#WS", msacsr=%u: PASS\n", msacsr); \
+ else \
+ printf(instruction" $"#WD", $"#WS", msacsr=%u: FAIL\n", msacsr); \
+}
+
+#define TEST_2RF_FRSQRT_D(instruction, data, offset, WD, WS, \
+ exp_part1, exp_part2) \
+{ \
+ frsqrt_exp.i[0] = exp_part1; \
+ frsqrt_exp.i[1] = exp_part2; \
+ __asm__ volatile ( \
+ ".set push;\n\t" \
+ ".set noreorder;\n\t" \
+ "ctcmsa $1, %2\n\t" \
+ "move $t0, %0\n\t" \
+ "ld.d $"#WD", "#offset"($t0)\n\t" \
+ "xori.b $"#WD", $"#WD", 0xff\n\t" \
+ "ld.d $"#WS", "#offset"($t0)\n\t" \
+ instruction" $"#WD", $"#WS"\n\t" \
+ "move $t0, %1\n\t" \
+ "st.d $"#WD", 0($t0)\n\t" \
+ "cfcmsa %2, $1\n\t" \
+ ".set pop;\n\t" \
+ : \
+ : "r" (data), "r" (frsqrt_out.d), "r"(msacsr) \
+ : "t0", "memory" \
+ ); \
+ if(withinEpsOfD(frsqrt_out.d, frsqrt_exp.d, data, offset)) \
+ printf(instruction" $"#WD", $"#WS", msacsr=%u: PASS\n", msacsr); \
+ else \
+ printf(instruction" $"#WD", $"#WS", msacsr=%u: FAIL\n", msacsr); \
+}
#define TEST_MSA_FPU_REG32(WS) \
{ \
TEST_2RF("frcp.d", datad, 144, w29, w11);
TEST_2RF("frcp.d", datad, 0, w30, w30);
TEST_2RF("frcp.d", datad, 16, w31, w22);
- TEST_2RF("frsqrt.w", dataf, 0, w0, w10);
- TEST_2RF("frsqrt.w", dataf, 8, w1, w20);
- TEST_2RF("frsqrt.w", dataf, 16, w2, w26);
- TEST_2RF("frsqrt.w", dataf, 24, w3, w12);
- TEST_2RF("frsqrt.w", dataf, 32, w4, w0);
- TEST_2RF("frsqrt.w", dataf, 40, w5, w22);
- TEST_2RF("frsqrt.w", dataf, 48, w6, w26);
- TEST_2RF("frsqrt.w", dataf, 56, w7, w14);
- TEST_2RF("frsqrt.w", dataf, 64, w8, w8);
- TEST_2RF("frsqrt.w", dataf, 72, w9, w17);
- TEST_2RF("frsqrt.w", dataf, 0, w10, w28);
- TEST_2RF("frsqrt.w", dataf, 8, w11, w8);
- TEST_2RF("frsqrt.w", dataf, 16, w12, w16);
- TEST_2RF("frsqrt.w", dataf, 24, w13, w9);
- TEST_2RF("frsqrt.w", dataf, 32, w14, w3);
- TEST_2RF("frsqrt.w", dataf, 40, w15, w21);
- TEST_2RF("frsqrt.w", dataf, 48, w16, w9);
- TEST_2RF("frsqrt.w", dataf, 56, w17, w14);
- TEST_2RF("frsqrt.w", dataf, 64, w18, w10);
- TEST_2RF("frsqrt.w", dataf, 72, w19, w17);
- TEST_2RF("frsqrt.w", dataf, 0, w20, w25);
- TEST_2RF("frsqrt.w", dataf, 8, w21, w7);
- TEST_2RF("frsqrt.w", dataf, 16, w22, w26);
- TEST_2RF("frsqrt.w", dataf, 24, w23, w28);
- TEST_2RF("frsqrt.w", dataf, 32, w24, w4);
- TEST_2RF("frsqrt.w", dataf, 40, w25, w8);
- TEST_2RF("frsqrt.w", dataf, 48, w26, w1);
- TEST_2RF("frsqrt.w", dataf, 56, w27, w13);
- TEST_2RF("frsqrt.w", dataf, 64, w28, w14);
- TEST_2RF("frsqrt.w", dataf, 72, w29, w12);
- TEST_2RF("frsqrt.w", dataf, 0, w30, w30);
- TEST_2RF("frsqrt.w", dataf, 8, w31, w17);
- TEST_2RF("frsqrt.d", datad, 0, w0, w2);
- TEST_2RF("frsqrt.d", datad, 16, w1, w14);
- TEST_2RF("frsqrt.d", datad, 32, w2, w24);
- TEST_2RF("frsqrt.d", datad, 48, w3, w20);
- TEST_2RF("frsqrt.d", datad, 64, w4, w25);
- TEST_2RF("frsqrt.d", datad, 80, w5, w0);
- TEST_2RF("frsqrt.d", datad, 96, w6, w26);
- TEST_2RF("frsqrt.d", datad, 112, w7, w26);
- TEST_2RF("frsqrt.d", datad, 128, w8, w8);
- TEST_2RF("frsqrt.d", datad, 144, w9, w19);
- TEST_2RF("frsqrt.d", datad, 0, w10, w27);
- TEST_2RF("frsqrt.d", datad, 16, w11, w8);
- TEST_2RF("frsqrt.d", datad, 32, w12, w2);
- TEST_2RF("frsqrt.d", datad, 48, w13, w31);
- TEST_2RF("frsqrt.d", datad, 64, w14, w0);
- TEST_2RF("frsqrt.d", datad, 80, w15, w30);
- TEST_2RF("frsqrt.d", datad, 96, w16, w5);
- TEST_2RF("frsqrt.d", datad, 112, w17, w3);
- TEST_2RF("frsqrt.d", datad, 128, w18, w7);
- TEST_2RF("frsqrt.d", datad, 144, w19, w3);
- TEST_2RF("frsqrt.d", datad, 0, w20, w30);
- TEST_2RF("frsqrt.d", datad, 16, w21, w27);
- TEST_2RF("frsqrt.d", datad, 32, w22, w26);
- TEST_2RF("frsqrt.d", datad, 48, w23, w20);
- TEST_2RF("frsqrt.d", datad, 64, w24, w7);
- TEST_2RF("frsqrt.d", datad, 80, w25, w10);
- TEST_2RF("frsqrt.d", datad, 96, w26, w29);
- TEST_2RF("frsqrt.d", datad, 112, w27, w20);
- TEST_2RF("frsqrt.d", datad, 128, w28, w6);
- TEST_2RF("frsqrt.d", datad, 144, w29, w24);
- TEST_2RF("frsqrt.d", datad, 0, w30, w30);
- TEST_2RF("frsqrt.d", datad, 16, w31, w6);
TEST_2RF("fsqrt.w", dataf, 0, w0, w17);
TEST_2RF("fsqrt.w", dataf, 8, w1, w14);
TEST_2RF("fsqrt.w", dataf, 16, w2, w8);
TEST_2RF("ffqr.d", dataf, 8, w31, w28);
}
+ // Duplicated for each of the rounding modes
+ msacsr = 0;
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 0, w0, w10, 0x7fc000007fc00000, 0x7fc000003fb504f3);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 8, w1, w20, 0x7fc000003d1abca5, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 16, w2, w26, 0xff8000007fc00000, 0x7fc000003d1abca5);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 24, w3, w12, 0x7f8000003d44c9f8, 0xff8000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 32, w4, w0, 0x5f21e89b7fc00000, 0x7f8000003d44c9f8);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 40, w5, w22, 0x3bd77f463f741620, 0x5f21e89b7fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 48, w6, w26, 0x000000007fc00000, 0x3bd77f463f741620);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 56, w7, w14, 0x7fc000007fc00000, 0x000000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 64, w8, w8, 0x3d2aaaab3c7349e0, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 72, w9, w17, 0x3d2aaaab3d2aaaab, 0x3d2aaaab3c7349e0);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 0, w10, w28, 0x7fc000007fc00000, 0x7fc000003fb504f3);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 8, w11, w8, 0x7fc000003d1abca5, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 16, w12, w16, 0xff8000007fc00000, 0x7fc000003d1abca5);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 24, w13, w9, 0x7f8000003d44c9f8, 0xff8000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 32, w14, w3, 0x5f21e89b7fc00000, 0x7f8000003d44c9f8);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 40, w15, w21, 0x3bd77f463f741620, 0x5f21e89b7fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 48, w16, w9, 0x000000007fc00000, 0x3bd77f463f741620);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 56, w17, w14, 0x7fc000007fc00000, 0x000000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 64, w18, w10, 0x3d2aaaab3c7349e0, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 72, w19, w17, 0x3d2aaaab3d2aaaab, 0x3d2aaaab3c7349e0);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 0, w20, w25, 0x7fc000007fc00000, 0x7fc000003fb504f3);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 8, w21, w7, 0x7fc000003d1abca5, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 16, w22, w26, 0xff8000007fc00000, 0x7fc000003d1abca5);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 24, w23, w28, 0x7f8000003d44c9f8, 0xff8000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 32, w24, w4, 0x5f21e89b7fc00000, 0x7f8000003d44c9f8);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 40, w25, w8, 0x3bd77f463f741620, 0x5f21e89b7fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 48, w26, w1, 0x000000007fc00000, 0x3bd77f463f741620);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 56, w27, w13, 0x7fc000007fc00000, 0x000000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 64, w28, w14, 0x3d2aaaab3c7349e0, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 72, w29, w12, 0x3d2aaaab3d2aaaab, 0x3d2aaaab3c7349e0);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 0, w30, w30, 0x7fc000007fc00000, 0x7fc000003fb504f3);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 8, w31, w17, 0x7fc000003d1abca5, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 0, w0, w2, 0x3ff6a09e667f3bcd, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 16, w1, w14, 0x7ff8000000000000, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 32, w2, w24, 0x3fa35794ad44f3ee, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 48, w3, w20, 0x7ff8000000000000, 0xfff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 64, w4, w25, 0x3fa8993eff4a591f, 0x7ff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 80, w5, w0, 0x7ff8000000000000, 0x604a20bd700c2c3e);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 96, w6, w26, 0x3fee82c3f9d89e1b, 0x3f458a24b20e5b9e);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 112, w7, w26, 0x7ff8000000000000, 0x0000000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 128, w8, w8, 0x3f733bbfdc427cac, 0x3fa5555555555555);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 144, w9, w19, 0x3fa5555555555555, 0x3fa5555555555555);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 0, w10, w27, 0x3ff6a09e667f3bcd, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 16, w11, w8, 0x7ff8000000000000, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 32, w12, w2, 0x3fa35794ad44f3ee, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 48, w13, w31, 0x7ff8000000000000, 0xfff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 64, w14, w0, 0x3fa8993eff4a591f, 0x7ff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 80, w15, w30, 0x7ff8000000000000, 0x604a20bd700c2c3e);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 96, w16, w5, 0x3fee82c3f9d89e1b, 0x3f458a24b20e5b9e);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 112, w17, w3, 0x7ff8000000000000, 0x0000000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 128, w18, w7, 0x3f733bbfdc427cac, 0x3fa5555555555555);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 144, w19, w3, 0x3fa5555555555555, 0x3fa5555555555555);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 0, w20, w30, 0x3ff6a09e667f3bcd, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 16, w21, w27, 0x7ff8000000000000, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 32, w22, w26, 0x3fa35794ad44f3ee, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 48, w23, w20, 0x7ff8000000000000, 0xfff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 64, w24, w7, 0x3fa8993eff4a591f, 0x7ff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 80, w25, w10, 0x7ff8000000000000, 0x604a20bd700c2c3e);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 96, w26, w29, 0x3fee82c3f9d89e1b, 0x3f458a24b20e5b9e);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 112, w27, w20, 0x7ff8000000000000, 0x0000000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 128, w28, w6, 0x3f733bbfdc427cac, 0x3fa5555555555555);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 144, w29, w24, 0x3fa5555555555555, 0x3fa5555555555555);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 0, w30, w30, 0x3ff6a09e667f3bcd, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 16, w31, w6, 0x7ff8000000000000, 0x7ff8000000000000);
+
+ msacsr = 1;
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 0, w0, w10, 0x7fc000007fc00000, 0x7fc000003fb504f3);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 8, w1, w20, 0x7fc000003d1abca5, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 16, w2, w26, 0xff8000007fc00000, 0x7fc000003d1abca5);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 24, w3, w12, 0x7f8000003d44c9f7, 0xff8000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 32, w4, w0, 0x5f21e89b7fc00000, 0x7f8000003d44c9f7);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 40, w5, w22, 0x3bd77f463f74161f, 0x5f21e89b7fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 48, w6, w26, 0x000000007fc00000, 0x3bd77f463f74161f);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 56, w7, w14, 0x7fc000007fc00000, 0x000000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 64, w8, w8, 0x3d2aaaaa3c7349df, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 72, w9, w17, 0x3d2aaaaa3d2aaaaa, 0x3d2aaaaa3c7349df);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 0, w10, w28, 0x7fc000007fc00000, 0x7fc000003fb504f3);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 8, w11, w8, 0x7fc000003d1abca5, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 16, w12, w16, 0xff8000007fc00000, 0x7fc000003d1abca5);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 24, w13, w9, 0x7f8000003d44c9f7, 0xff8000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 32, w14, w3, 0x5f21e89b7fc00000, 0x7f8000003d44c9f7);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 40, w15, w21, 0x3bd77f463f74161f, 0x5f21e89b7fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 48, w16, w9, 0x000000007fc00000, 0x3bd77f463f74161f);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 56, w17, w14, 0x7fc000007fc00000, 0x000000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 64, w18, w10, 0x3d2aaaaa3c7349df, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 72, w19, w17, 0x3d2aaaaa3d2aaaaa, 0x3d2aaaaa3c7349df);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 0, w20, w25, 0x7fc000007fc00000, 0x7fc000003fb504f3);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 8, w21, w7, 0x7fc000003d1abca5, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 16, w22, w26, 0xff8000007fc00000, 0x7fc000003d1abca5);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 24, w23, w28, 0x7f8000003d44c9f7, 0xff8000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 32, w24, w4, 0x5f21e89b7fc00000, 0x7f8000003d44c9f7);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 40, w25, w8, 0x3bd77f463f74161f, 0x5f21e89b7fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 48, w26, w1, 0x000000007fc00000, 0x3bd77f463f74161f);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 56, w27, w13, 0x7fc000007fc00000, 0x000000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 64, w28, w14, 0x3d2aaaaa3c7349df, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 72, w29, w12, 0x3d2aaaaa3d2aaaaa, 0x3d2aaaaa3c7349df);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 0, w30, w30, 0x7fc000007fc00000, 0x7fc000003fb504f3);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 8, w31, w17, 0x7fc000003d1abca5, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 0, w0, w2, 0x3ff6a09e667f3bcc, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 16, w1, w14, 0x7ff8000000000000, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 32, w2, w24, 0x3fa35794ad44f3ee, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 48, w3, w20, 0x7ff8000000000000, 0xfff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 64, w4, w25, 0x3fa8993eff4a591e, 0x7ff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 80, w5, w0, 0x7ff8000000000000, 0x604a20bd700c2c3d);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 96, w6, w26, 0x3fee82c3f9d89e1b, 0x3f458a24b20e5b9d);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 112, w7, w26, 0x7ff8000000000000, 0x0000000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 128, w8, w8, 0x3f733bbfdc427cab, 0x3fa5555555555555);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 144, w9, w19, 0x3fa5555555555555, 0x3fa5555555555555);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 0, w10, w27, 0x3ff6a09e667f3bcc, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 16, w11, w8, 0x7ff8000000000000, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 32, w12, w2, 0x3fa35794ad44f3ee, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 48, w13, w31, 0x7ff8000000000000, 0xfff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 64, w14, w0, 0x3fa8993eff4a591e, 0x7ff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 80, w15, w30, 0x7ff8000000000000, 0x604a20bd700c2c3d);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 96, w16, w5, 0x3fee82c3f9d89e1b, 0x3f458a24b20e5b9d);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 112, w17, w3, 0x7ff8000000000000, 0x0000000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 128, w18, w7, 0x3f733bbfdc427cab, 0x3fa5555555555555);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 144, w19, w3, 0x3fa5555555555555, 0x3fa5555555555555);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 0, w20, w30, 0x3ff6a09e667f3bcc, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 16, w21, w27, 0x7ff8000000000000, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 32, w22, w26, 0x3fa35794ad44f3ee, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 48, w23, w20, 0x7ff8000000000000, 0xfff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 64, w24, w7, 0x3fa8993eff4a591e, 0x7ff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 80, w25, w10, 0x7ff8000000000000, 0x604a20bd700c2c3d);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 96, w26, w29, 0x3fee82c3f9d89e1b, 0x3f458a24b20e5b9d);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 112, w27, w20, 0x7ff8000000000000, 0x0000000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 128, w28, w6, 0x3f733bbfdc427cab, 0x3fa5555555555555);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 144, w29, w24, 0x3fa5555555555555, 0x3fa5555555555555);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 0, w30, w30, 0x3ff6a09e667f3bcc, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 16, w31, w6, 0x7ff8000000000000, 0x7ff8000000000000);
+
+ msacsr = 2;
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 0, w0, w10, 0x7fc000007fc00000, 0x7fc000003fb504f4);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 8, w1, w20, 0x7fc000003d1abca6, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 16, w2, w26, 0xff8000007fc00000, 0x7fc000003d1abca6);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 24, w3, w12, 0x7f8000003d44c9f8, 0xff8000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 32, w4, w0, 0x5f21e89c7fc00000, 0x7f8000003d44c9f8);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 40, w5, w22, 0x3bd77f473f741620, 0x5f21e89c7fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 48, w6, w26, 0x000000007fc00000, 0x3bd77f473f741620);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 56, w7, w14, 0x7fc000007fc00000, 0x000000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 64, w8, w8, 0x3d2aaaab3c7349e0, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 72, w9, w17, 0x3d2aaaab3d2aaaab, 0x3d2aaaab3c7349e0);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 0, w10, w28, 0x7fc000007fc00000, 0x7fc000003fb504f4);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 8, w11, w8, 0x7fc000003d1abca6, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 16, w12, w16, 0xff8000007fc00000, 0x7fc000003d1abca6);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 24, w13, w9, 0x7f8000003d44c9f8, 0xff8000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 32, w14, w3, 0x5f21e89c7fc00000, 0x7f8000003d44c9f8);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 40, w15, w21, 0x3bd77f473f741620, 0x5f21e89c7fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 48, w16, w9, 0x000000007fc00000, 0x3bd77f473f741620);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 56, w17, w14, 0x7fc000007fc00000, 0x000000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 64, w18, w10, 0x3d2aaaab3c7349e0, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 72, w19, w17, 0x3d2aaaab3d2aaaab, 0x3d2aaaab3c7349e0);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 0, w20, w25, 0x7fc000007fc00000, 0x7fc000003fb504f4);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 8, w21, w7, 0x7fc000003d1abca6, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 16, w22, w26, 0xff8000007fc00000, 0x7fc000003d1abca6);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 24, w23, w28, 0x7f8000003d44c9f8, 0xff8000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 32, w24, w4, 0x5f21e89c7fc00000, 0x7f8000003d44c9f8);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 40, w25, w8, 0x3bd77f473f741620, 0x5f21e89c7fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 48, w26, w1, 0x000000007fc00000, 0x3bd77f473f741620);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 56, w27, w13, 0x7fc000007fc00000, 0x000000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 64, w28, w14, 0x3d2aaaab3c7349e0, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 72, w29, w12, 0x3d2aaaab3d2aaaab, 0x3d2aaaab3c7349e0);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 0, w30, w30, 0x7fc000007fc00000, 0x7fc000003fb504f4);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 8, w31, w17, 0x7fc000003d1abca6, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 0, w0, w2, 0x3ff6a09e667f3bcd, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 16, w1, w14, 0x7ff8000000000000, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 32, w2, w24, 0x3fa35794ad44f3ef, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 48, w3, w20, 0x7ff8000000000000, 0xfff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 64, w4, w25, 0x3fa8993eff4a591f, 0x7ff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 80, w5, w0, 0x7ff8000000000000, 0x604a20bd700c2c3e);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 96, w6, w26, 0x3fee82c3f9d89e1c, 0x3f458a24b20e5b9e);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 112, w7, w26, 0x7ff8000000000000, 0x0000000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 128, w8, w8, 0x3f733bbfdc427cac, 0x3fa5555555555556);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 144, w9, w19, 0x3fa5555555555556, 0x3fa5555555555556);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 0, w10, w27, 0x3ff6a09e667f3bcd, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 16, w11, w8, 0x7ff8000000000000, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 32, w12, w2, 0x3fa35794ad44f3ef, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 48, w13, w31, 0x7ff8000000000000, 0xfff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 64, w14, w0, 0x3fa8993eff4a591f, 0x7ff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 80, w15, w30, 0x7ff8000000000000, 0x604a20bd700c2c3e);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 96, w16, w5, 0x3fee82c3f9d89e1c, 0x3f458a24b20e5b9e);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 112, w17, w3, 0x7ff8000000000000, 0x0000000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 128, w18, w7, 0x3f733bbfdc427cac, 0x3fa5555555555556);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 144, w19, w3, 0x3fa5555555555556, 0x3fa5555555555556);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 0, w20, w30, 0x3ff6a09e667f3bcd, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 16, w21, w27, 0x7ff8000000000000, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 32, w22, w26, 0x3fa35794ad44f3ef, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 48, w23, w20, 0x7ff8000000000000, 0xfff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 64, w24, w7, 0x3fa8993eff4a591f, 0x7ff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 80, w25, w10, 0x7ff8000000000000, 0x604a20bd700c2c3e);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 96, w26, w29, 0x3fee82c3f9d89e1c, 0x3f458a24b20e5b9e);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 112, w27, w20, 0x7ff8000000000000, 0x0000000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 128, w28, w6, 0x3f733bbfdc427cac, 0x3fa5555555555556);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 144, w29, w24, 0x3fa5555555555556, 0x3fa5555555555556);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 0, w30, w30, 0x3ff6a09e667f3bcd, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 16, w31, w6, 0x7ff8000000000000, 0x7ff8000000000000);
+
+ msacsr = 3;
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 0, w0, w10, 0x7fc000007fc00000, 0x7fc000003fb504f3);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 8, w1, w20, 0x7fc000003d1abca5, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 16, w2, w26, 0xff8000007fc00000, 0x7fc000003d1abca5);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 24, w3, w12, 0x7f8000003d44c9f7, 0xff8000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 32, w4, w0, 0x5f21e89b7fc00000, 0x7f8000003d44c9f7);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 40, w5, w22, 0x3bd77f463f74161f, 0x5f21e89b7fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 48, w6, w26, 0x000000007fc00000, 0x3bd77f463f74161f);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 56, w7, w14, 0x7fc000007fc00000, 0x000000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 64, w8, w8, 0x3d2aaaaa3c7349df, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 72, w9, w17, 0x3d2aaaaa3d2aaaaa, 0x3d2aaaaa3c7349df);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 0, w10, w28, 0x7fc000007fc00000, 0x7fc000003fb504f3);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 8, w11, w8, 0x7fc000003d1abca5, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 16, w12, w16, 0xff8000007fc00000, 0x7fc000003d1abca5);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 24, w13, w9, 0x7f8000003d44c9f7, 0xff8000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 32, w14, w3, 0x5f21e89b7fc00000, 0x7f8000003d44c9f7);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 40, w15, w21, 0x3bd77f463f74161f, 0x5f21e89b7fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 48, w16, w9, 0x000000007fc00000, 0x3bd77f463f74161f);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 56, w17, w14, 0x7fc000007fc00000, 0x000000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 64, w18, w10, 0x3d2aaaaa3c7349df, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 72, w19, w17, 0x3d2aaaaa3d2aaaaa, 0x3d2aaaaa3c7349df);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 0, w20, w25, 0x7fc000007fc00000, 0x7fc000003fb504f3);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 8, w21, w7, 0x7fc000003d1abca5, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 16, w22, w26, 0xff8000007fc00000, 0x7fc000003d1abca5);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 24, w23, w28, 0x7f8000003d44c9f7, 0xff8000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 32, w24, w4, 0x5f21e89b7fc00000, 0x7f8000003d44c9f7);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 40, w25, w8, 0x3bd77f463f74161f, 0x5f21e89b7fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 48, w26, w1, 0x000000007fc00000, 0x3bd77f463f74161f);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 56, w27, w13, 0x7fc000007fc00000, 0x000000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 64, w28, w14, 0x3d2aaaaa3c7349df, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 72, w29, w12, 0x3d2aaaaa3d2aaaaa, 0x3d2aaaaa3c7349df);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 0, w30, w30, 0x7fc000007fc00000, 0x7fc000003fb504f3);
+ TEST_2RF_FRSQRT_W("frsqrt.w", dataf, 8, w31, w17, 0x7fc000003d1abca5, 0x7fc000007fc00000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 0, w0, w2, 0x3ff6a09e667f3bcc, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 16, w1, w14, 0x7ff8000000000000, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 32, w2, w24, 0x3fa35794ad44f3ee, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 48, w3, w20, 0x7ff8000000000000, 0xfff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 64, w4, w25, 0x3fa8993eff4a591e, 0x7ff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 80, w5, w0, 0x7ff8000000000000, 0x604a20bd700c2c3d);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 96, w6, w26, 0x3fee82c3f9d89e1b, 0x3f458a24b20e5b9d);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 112, w7, w26, 0x7ff8000000000000, 0x0000000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 128, w8, w8, 0x3f733bbfdc427cab, 0x3fa5555555555555);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 144, w9, w19, 0x3fa5555555555555, 0x3fa5555555555555);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 0, w10, w27, 0x3ff6a09e667f3bcc, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 16, w11, w8, 0x7ff8000000000000, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 32, w12, w2, 0x3fa35794ad44f3ee, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 48, w13, w31, 0x7ff8000000000000, 0xfff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 64, w14, w0, 0x3fa8993eff4a591e, 0x7ff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 80, w15, w30, 0x7ff8000000000000, 0x604a20bd700c2c3d);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 96, w16, w5, 0x3fee82c3f9d89e1b, 0x3f458a24b20e5b9d);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 112, w17, w3, 0x7ff8000000000000, 0x0000000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 128, w18, w7, 0x3f733bbfdc427cab, 0x3fa5555555555555);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 144, w19, w3, 0x3fa5555555555555, 0x3fa5555555555555);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 0, w20, w30, 0x3ff6a09e667f3bcc, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 16, w21, w27, 0x7ff8000000000000, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 32, w22, w26, 0x3fa35794ad44f3ee, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 48, w23, w20, 0x7ff8000000000000, 0xfff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 64, w24, w7, 0x3fa8993eff4a591e, 0x7ff0000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 80, w25, w10, 0x7ff8000000000000, 0x604a20bd700c2c3d);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 96, w26, w29, 0x3fee82c3f9d89e1b, 0x3f458a24b20e5b9d);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 112, w27, w20, 0x7ff8000000000000, 0x0000000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 128, w28, w6, 0x3f733bbfdc427cab, 0x3fa5555555555555);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 144, w29, w24, 0x3fa5555555555555, 0x3fa5555555555555);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 0, w30, w30, 0x3ff6a09e667f3bcc, 0x7ff8000000000000);
+ TEST_2RF_FRSQRT_D("frsqrt.d", datad, 16, w31, w6, 0x7ff8000000000000, 0x7ff8000000000000);
+
+
// Registers ovelapping tests.
TEST_MSA_FPU_REG32(0);
frcp.d $w29, $w11, w29: 3f5c71c71c71c71c3f5c71c71c71c71c w11: 40820000000000004082000000000000 msacsr 00000000
frcp.d $w30, $w30, w30: 40000000000000008000000000000000 w30: 3fe0000000000000fff0000000000000 msacsr 00000000
frcp.d $w31, $w22, w31: bfd81fa673fc86b5bbffffffc0000080 w22: c005395810624dd3c3e0000020000000 msacsr 00000000
-frsqrt.w $w0, $w10, w0: 7fc000007fc000007fc000003fb504f3 w10: cf000001c029cac1ff8000003f000000 msacsr 00000000
-frsqrt.w $w1, $w20, w1: 7fc000003d1abca57fc000007fc00000 w20: 80500000442f2ccdcf000001c029cac1 msacsr 00000000
-frsqrt.w $w2, $w26, w2: ff8000007fc000007fc000003d1abca5 w26: 80000000c447c7ae80500000442f2ccd msacsr 00000000
-frsqrt.w $w3, $w12, w3: 7f8000003d44c9f8ff8000007fc00000 w12: 0000000043d89d7180000000c447c7ae msacsr 00000000
-frsqrt.w $w4, $w0, w4: 5f21e89b7fc000007f8000003d44c9f8 w0: 00500000bf3333330000000043d89d71 msacsr 00000000
-frsqrt.w $w5, $w22, w5: 3bd77f463f7416205f21e89b7fc00000 w22: 46b4a3143f8ccccd00500000bf333333 msacsr 00000000
-frsqrt.w $w6, $w26, w6: 000000007fc000003bd77f463f741620 w26: 7f800000c70dabb346b4a3143f8ccccd msacsr 00000000
-frsqrt.w $w7, $w14, w7: 7fc000007fc00000000000007fc00000 w14: c029cac1c791bfa97f800000c70dabb3 msacsr 00000000
-frsqrt.w $w8, $w8, w8: 3d2aaaab3c7349e07fc000007fc00000 w8: 44100000458db99ac029cac1c791bfa9 msacsr 00000000
-frsqrt.w $w9, $w17, w9: 3d2aaaab3d2aaaab3d2aaaab3c7349e0 w17: 441000004410000044100000458db99a msacsr 00000000
-frsqrt.w $w10, $w28, w10: 7fc000007fc000007fc000003fb504f3 w28: cf000001c029cac1ff8000003f000000 msacsr 00000000
-frsqrt.w $w11, $w8, w11: 7fc000003d1abca57fc000007fc00000 w8: 80500000442f2ccdcf000001c029cac1 msacsr 00000000
-frsqrt.w $w12, $w16, w12: ff8000007fc000007fc000003d1abca5 w16: 80000000c447c7ae80500000442f2ccd msacsr 00000000
-frsqrt.w $w13, $w9, w13: 7f8000003d44c9f8ff8000007fc00000 w9: 0000000043d89d7180000000c447c7ae msacsr 00000000
-frsqrt.w $w14, $w3, w14: 5f21e89b7fc000007f8000003d44c9f8 w3: 00500000bf3333330000000043d89d71 msacsr 00000000
-frsqrt.w $w15, $w21, w15: 3bd77f463f7416205f21e89b7fc00000 w21: 46b4a3143f8ccccd00500000bf333333 msacsr 00000000
-frsqrt.w $w16, $w9, w16: 000000007fc000003bd77f463f741620 w9: 7f800000c70dabb346b4a3143f8ccccd msacsr 00000000
-frsqrt.w $w17, $w14, w17: 7fc000007fc00000000000007fc00000 w14: c029cac1c791bfa97f800000c70dabb3 msacsr 00000000
-frsqrt.w $w18, $w10, w18: 3d2aaaab3c7349e07fc000007fc00000 w10: 44100000458db99ac029cac1c791bfa9 msacsr 00000000
-frsqrt.w $w19, $w17, w19: 3d2aaaab3d2aaaab3d2aaaab3c7349e0 w17: 441000004410000044100000458db99a msacsr 00000000
-frsqrt.w $w20, $w25, w20: 7fc000007fc000007fc000003fb504f3 w25: cf000001c029cac1ff8000003f000000 msacsr 00000000
-frsqrt.w $w21, $w7, w21: 7fc000003d1abca57fc000007fc00000 w7: 80500000442f2ccdcf000001c029cac1 msacsr 00000000
-frsqrt.w $w22, $w26, w22: ff8000007fc000007fc000003d1abca5 w26: 80000000c447c7ae80500000442f2ccd msacsr 00000000
-frsqrt.w $w23, $w28, w23: 7f8000003d44c9f8ff8000007fc00000 w28: 0000000043d89d7180000000c447c7ae msacsr 00000000
-frsqrt.w $w24, $w4, w24: 5f21e89b7fc000007f8000003d44c9f8 w4: 00500000bf3333330000000043d89d71 msacsr 00000000
-frsqrt.w $w25, $w8, w25: 3bd77f463f7416205f21e89b7fc00000 w8: 46b4a3143f8ccccd00500000bf333333 msacsr 00000000
-frsqrt.w $w26, $w1, w26: 000000007fc000003bd77f463f741620 w1: 7f800000c70dabb346b4a3143f8ccccd msacsr 00000000
-frsqrt.w $w27, $w13, w27: 7fc000007fc00000000000007fc00000 w13: c029cac1c791bfa97f800000c70dabb3 msacsr 00000000
-frsqrt.w $w28, $w14, w28: 3d2aaaab3c7349e07fc000007fc00000 w14: 44100000458db99ac029cac1c791bfa9 msacsr 00000000
-frsqrt.w $w29, $w12, w29: 3d2aaaab3d2aaaab3d2aaaab3c7349e0 w12: 441000004410000044100000458db99a msacsr 00000000
-frsqrt.w $w30, $w30, w30: 7fc000007fc000007fc000003fb504f3 w30: cf000001c029cac1ff8000003f000000 msacsr 00000000
-frsqrt.w $w31, $w17, w31: 7fc000003d1abca57fc000007fc00000 w17: 80500000442f2ccdcf000001c029cac1 msacsr 00000000
-frsqrt.d $w0, $w2, w0: 3ff6a09e667f3bcd7ff8000000000000 w2: 3fe0000000000000fff0000000000000 msacsr 00000000
-frsqrt.d $w1, $w14, w1: 7ff80000000000007ff8000000000000 w14: c005395810624dd3c3e0000020000000 msacsr 00000000
-frsqrt.d $w2, $w24, w2: 3fa35794ad44f3ee7ff8000000000000 w24: 4085e5999999999a8000006000000000 msacsr 00000000
-frsqrt.d $w3, $w20, w3: 7ff8000000000000fff0000000000000 w20: c088f8f5c28f5c298000000000000000 msacsr 00000000
-frsqrt.d $w4, $w25, w4: 3fa8993eff4a591f7ff0000000000000 w25: 407b13ae147ae1480000000000000000 msacsr 00000000
-frsqrt.d $w5, $w0, w5: 7ff8000000000000604a20bd700c2c3e w0: bfe66666666666660000006000000000 msacsr 00000000
-frsqrt.d $w6, $w26, w6: 3fee82c3f9d89e1b3f458a24b20e5b9e w26: 3ff199999999999a4141a828c51eb852 msacsr 00000000
-frsqrt.d $w7, $w26, w7: 7ff80000000000000000000000000000 w26: c1b59e0837b333337ff0000000000000 msacsr 00000000
-frsqrt.d $w8, $w8, w8: 3f733bbfdc427cac3fa5555555555555 w8: 40e62526666666664082000000000000 msacsr 00000000
-frsqrt.d $w9, $w19, w9: 3fa55555555555553fa5555555555555 w19: 40820000000000004082000000000000 msacsr 00000000
-frsqrt.d $w10, $w27, w10: 3ff6a09e667f3bcd7ff8000000000000 w27: 3fe0000000000000fff0000000000000 msacsr 00000000
-frsqrt.d $w11, $w8, w11: 7ff80000000000007ff8000000000000 w8: c005395810624dd3c3e0000020000000 msacsr 00000000
-frsqrt.d $w12, $w2, w12: 3fa35794ad44f3ee7ff8000000000000 w2: 4085e5999999999a8000006000000000 msacsr 00000000
-frsqrt.d $w13, $w31, w13: 7ff8000000000000fff0000000000000 w31: c088f8f5c28f5c298000000000000000 msacsr 00000000
-frsqrt.d $w14, $w0, w14: 3fa8993eff4a591f7ff0000000000000 w0: 407b13ae147ae1480000000000000000 msacsr 00000000
-frsqrt.d $w15, $w30, w15: 7ff8000000000000604a20bd700c2c3e w30: bfe66666666666660000006000000000 msacsr 00000000
-frsqrt.d $w16, $w5, w16: 3fee82c3f9d89e1b3f458a24b20e5b9e w5: 3ff199999999999a4141a828c51eb852 msacsr 00000000
-frsqrt.d $w17, $w3, w17: 7ff80000000000000000000000000000 w3: c1b59e0837b333337ff0000000000000 msacsr 00000000
-frsqrt.d $w18, $w7, w18: 3f733bbfdc427cac3fa5555555555555 w7: 40e62526666666664082000000000000 msacsr 00000000
-frsqrt.d $w19, $w3, w19: 3fa55555555555553fa5555555555555 w3: 40820000000000004082000000000000 msacsr 00000000
-frsqrt.d $w20, $w30, w20: 3ff6a09e667f3bcd7ff8000000000000 w30: 3fe0000000000000fff0000000000000 msacsr 00000000
-frsqrt.d $w21, $w27, w21: 7ff80000000000007ff8000000000000 w27: c005395810624dd3c3e0000020000000 msacsr 00000000
-frsqrt.d $w22, $w26, w22: 3fa35794ad44f3ee7ff8000000000000 w26: 4085e5999999999a8000006000000000 msacsr 00000000
-frsqrt.d $w23, $w20, w23: 7ff8000000000000fff0000000000000 w20: c088f8f5c28f5c298000000000000000 msacsr 00000000
-frsqrt.d $w24, $w7, w24: 3fa8993eff4a591f7ff0000000000000 w7: 407b13ae147ae1480000000000000000 msacsr 00000000
-frsqrt.d $w25, $w10, w25: 7ff8000000000000604a20bd700c2c3e w10: bfe66666666666660000006000000000 msacsr 00000000
-frsqrt.d $w26, $w29, w26: 3fee82c3f9d89e1b3f458a24b20e5b9e w29: 3ff199999999999a4141a828c51eb852 msacsr 00000000
-frsqrt.d $w27, $w20, w27: 7ff80000000000000000000000000000 w20: c1b59e0837b333337ff0000000000000 msacsr 00000000
-frsqrt.d $w28, $w6, w28: 3f733bbfdc427cac3fa5555555555555 w6: 40e62526666666664082000000000000 msacsr 00000000
-frsqrt.d $w29, $w24, w29: 3fa55555555555553fa5555555555555 w24: 40820000000000004082000000000000 msacsr 00000000
-frsqrt.d $w30, $w30, w30: 3ff6a09e667f3bcd7ff8000000000000 w30: 3fe0000000000000fff0000000000000 msacsr 00000000
-frsqrt.d $w31, $w6, w31: 7ff80000000000007ff8000000000000 w6: c005395810624dd3c3e0000020000000 msacsr 00000000
fsqrt.w $w0, $w17, w0: 7fc000007fc000007fc000003f3504f3 w17: cf000001c029cac1ff8000003f000000 msacsr 00000000
fsqrt.w $w1, $w14, w1: 7fc0000041d3c4137fc000007fc00000 w14: 80500000442f2ccdcf000001c029cac1 msacsr 00000000
fsqrt.w $w2, $w8, w2: 800000007fc000007fc0000041d3c413 w8: 80000000c447c7ae80500000442f2ccd msacsr 00000000
frcp.d $w29, $w11, w29: 3f5c71c71c71c71c3f5c71c71c71c71c w11: 40820000000000004082000000000000 msacsr 00000001
frcp.d $w30, $w30, w30: 40000000000000008000000000000000 w30: 3fe0000000000000fff0000000000000 msacsr 00000001
frcp.d $w31, $w22, w31: bfd81fa673fc86b4bbffffffc000007f w22: c005395810624dd3c3e0000020000000 msacsr 00000001
-frsqrt.w $w0, $w10, w0: 7fc000007fc000007fc000003fb504f3 w10: cf000001c029cac1ff8000003f000000 msacsr 00000001
-frsqrt.w $w1, $w20, w1: 7fc000003d1abca57fc000007fc00000 w20: 80500000442f2ccdcf000001c029cac1 msacsr 00000001
-frsqrt.w $w2, $w26, w2: ff8000007fc000007fc000003d1abca5 w26: 80000000c447c7ae80500000442f2ccd msacsr 00000001
-frsqrt.w $w3, $w12, w3: 7f8000003d44c9f7ff8000007fc00000 w12: 0000000043d89d7180000000c447c7ae msacsr 00000001
-frsqrt.w $w4, $w0, w4: 5f21e89b7fc000007f8000003d44c9f7 w0: 00500000bf3333330000000043d89d71 msacsr 00000001
-frsqrt.w $w5, $w22, w5: 3bd77f463f74161f5f21e89b7fc00000 w22: 46b4a3143f8ccccd00500000bf333333 msacsr 00000001
-frsqrt.w $w6, $w26, w6: 000000007fc000003bd77f463f74161f w26: 7f800000c70dabb346b4a3143f8ccccd msacsr 00000001
-frsqrt.w $w7, $w14, w7: 7fc000007fc00000000000007fc00000 w14: c029cac1c791bfa97f800000c70dabb3 msacsr 00000001
-frsqrt.w $w8, $w8, w8: 3d2aaaaa3c7349df7fc000007fc00000 w8: 44100000458db99ac029cac1c791bfa9 msacsr 00000001
-frsqrt.w $w9, $w17, w9: 3d2aaaaa3d2aaaaa3d2aaaaa3c7349df w17: 441000004410000044100000458db99a msacsr 00000001
-frsqrt.w $w10, $w28, w10: 7fc000007fc000007fc000003fb504f3 w28: cf000001c029cac1ff8000003f000000 msacsr 00000001
-frsqrt.w $w11, $w8, w11: 7fc000003d1abca57fc000007fc00000 w8: 80500000442f2ccdcf000001c029cac1 msacsr 00000001
-frsqrt.w $w12, $w16, w12: ff8000007fc000007fc000003d1abca5 w16: 80000000c447c7ae80500000442f2ccd msacsr 00000001
-frsqrt.w $w13, $w9, w13: 7f8000003d44c9f7ff8000007fc00000 w9: 0000000043d89d7180000000c447c7ae msacsr 00000001
-frsqrt.w $w14, $w3, w14: 5f21e89b7fc000007f8000003d44c9f7 w3: 00500000bf3333330000000043d89d71 msacsr 00000001
-frsqrt.w $w15, $w21, w15: 3bd77f463f74161f5f21e89b7fc00000 w21: 46b4a3143f8ccccd00500000bf333333 msacsr 00000001
-frsqrt.w $w16, $w9, w16: 000000007fc000003bd77f463f74161f w9: 7f800000c70dabb346b4a3143f8ccccd msacsr 00000001
-frsqrt.w $w17, $w14, w17: 7fc000007fc00000000000007fc00000 w14: c029cac1c791bfa97f800000c70dabb3 msacsr 00000001
-frsqrt.w $w18, $w10, w18: 3d2aaaaa3c7349df7fc000007fc00000 w10: 44100000458db99ac029cac1c791bfa9 msacsr 00000001
-frsqrt.w $w19, $w17, w19: 3d2aaaaa3d2aaaaa3d2aaaaa3c7349df w17: 441000004410000044100000458db99a msacsr 00000001
-frsqrt.w $w20, $w25, w20: 7fc000007fc000007fc000003fb504f3 w25: cf000001c029cac1ff8000003f000000 msacsr 00000001
-frsqrt.w $w21, $w7, w21: 7fc000003d1abca57fc000007fc00000 w7: 80500000442f2ccdcf000001c029cac1 msacsr 00000001
-frsqrt.w $w22, $w26, w22: ff8000007fc000007fc000003d1abca5 w26: 80000000c447c7ae80500000442f2ccd msacsr 00000001
-frsqrt.w $w23, $w28, w23: 7f8000003d44c9f7ff8000007fc00000 w28: 0000000043d89d7180000000c447c7ae msacsr 00000001
-frsqrt.w $w24, $w4, w24: 5f21e89b7fc000007f8000003d44c9f7 w4: 00500000bf3333330000000043d89d71 msacsr 00000001
-frsqrt.w $w25, $w8, w25: 3bd77f463f74161f5f21e89b7fc00000 w8: 46b4a3143f8ccccd00500000bf333333 msacsr 00000001
-frsqrt.w $w26, $w1, w26: 000000007fc000003bd77f463f74161f w1: 7f800000c70dabb346b4a3143f8ccccd msacsr 00000001
-frsqrt.w $w27, $w13, w27: 7fc000007fc00000000000007fc00000 w13: c029cac1c791bfa97f800000c70dabb3 msacsr 00000001
-frsqrt.w $w28, $w14, w28: 3d2aaaaa3c7349df7fc000007fc00000 w14: 44100000458db99ac029cac1c791bfa9 msacsr 00000001
-frsqrt.w $w29, $w12, w29: 3d2aaaaa3d2aaaaa3d2aaaaa3c7349df w12: 441000004410000044100000458db99a msacsr 00000001
-frsqrt.w $w30, $w30, w30: 7fc000007fc000007fc000003fb504f3 w30: cf000001c029cac1ff8000003f000000 msacsr 00000001
-frsqrt.w $w31, $w17, w31: 7fc000003d1abca57fc000007fc00000 w17: 80500000442f2ccdcf000001c029cac1 msacsr 00000001
-frsqrt.d $w0, $w2, w0: 3ff6a09e667f3bcc7ff8000000000000 w2: 3fe0000000000000fff0000000000000 msacsr 00000001
-frsqrt.d $w1, $w14, w1: 7ff80000000000007ff8000000000000 w14: c005395810624dd3c3e0000020000000 msacsr 00000001
-frsqrt.d $w2, $w24, w2: 3fa35794ad44f3ee7ff8000000000000 w24: 4085e5999999999a8000006000000000 msacsr 00000001
-frsqrt.d $w3, $w20, w3: 7ff8000000000000fff0000000000000 w20: c088f8f5c28f5c298000000000000000 msacsr 00000001
-frsqrt.d $w4, $w25, w4: 3fa8993eff4a591e7ff0000000000000 w25: 407b13ae147ae1480000000000000000 msacsr 00000001
-frsqrt.d $w5, $w0, w5: 7ff8000000000000604a20bd700c2c3d w0: bfe66666666666660000006000000000 msacsr 00000001
-frsqrt.d $w6, $w26, w6: 3fee82c3f9d89e1b3f458a24b20e5b9d w26: 3ff199999999999a4141a828c51eb852 msacsr 00000001
-frsqrt.d $w7, $w26, w7: 7ff80000000000000000000000000000 w26: c1b59e0837b333337ff0000000000000 msacsr 00000001
-frsqrt.d $w8, $w8, w8: 3f733bbfdc427cab3fa5555555555555 w8: 40e62526666666664082000000000000 msacsr 00000001
-frsqrt.d $w9, $w19, w9: 3fa55555555555553fa5555555555555 w19: 40820000000000004082000000000000 msacsr 00000001
-frsqrt.d $w10, $w27, w10: 3ff6a09e667f3bcc7ff8000000000000 w27: 3fe0000000000000fff0000000000000 msacsr 00000001
-frsqrt.d $w11, $w8, w11: 7ff80000000000007ff8000000000000 w8: c005395810624dd3c3e0000020000000 msacsr 00000001
-frsqrt.d $w12, $w2, w12: 3fa35794ad44f3ee7ff8000000000000 w2: 4085e5999999999a8000006000000000 msacsr 00000001
-frsqrt.d $w13, $w31, w13: 7ff8000000000000fff0000000000000 w31: c088f8f5c28f5c298000000000000000 msacsr 00000001
-frsqrt.d $w14, $w0, w14: 3fa8993eff4a591e7ff0000000000000 w0: 407b13ae147ae1480000000000000000 msacsr 00000001
-frsqrt.d $w15, $w30, w15: 7ff8000000000000604a20bd700c2c3d w30: bfe66666666666660000006000000000 msacsr 00000001
-frsqrt.d $w16, $w5, w16: 3fee82c3f9d89e1b3f458a24b20e5b9d w5: 3ff199999999999a4141a828c51eb852 msacsr 00000001
-frsqrt.d $w17, $w3, w17: 7ff80000000000000000000000000000 w3: c1b59e0837b333337ff0000000000000 msacsr 00000001
-frsqrt.d $w18, $w7, w18: 3f733bbfdc427cab3fa5555555555555 w7: 40e62526666666664082000000000000 msacsr 00000001
-frsqrt.d $w19, $w3, w19: 3fa55555555555553fa5555555555555 w3: 40820000000000004082000000000000 msacsr 00000001
-frsqrt.d $w20, $w30, w20: 3ff6a09e667f3bcc7ff8000000000000 w30: 3fe0000000000000fff0000000000000 msacsr 00000001
-frsqrt.d $w21, $w27, w21: 7ff80000000000007ff8000000000000 w27: c005395810624dd3c3e0000020000000 msacsr 00000001
-frsqrt.d $w22, $w26, w22: 3fa35794ad44f3ee7ff8000000000000 w26: 4085e5999999999a8000006000000000 msacsr 00000001
-frsqrt.d $w23, $w20, w23: 7ff8000000000000fff0000000000000 w20: c088f8f5c28f5c298000000000000000 msacsr 00000001
-frsqrt.d $w24, $w7, w24: 3fa8993eff4a591e7ff0000000000000 w7: 407b13ae147ae1480000000000000000 msacsr 00000001
-frsqrt.d $w25, $w10, w25: 7ff8000000000000604a20bd700c2c3d w10: bfe66666666666660000006000000000 msacsr 00000001
-frsqrt.d $w26, $w29, w26: 3fee82c3f9d89e1b3f458a24b20e5b9d w29: 3ff199999999999a4141a828c51eb852 msacsr 00000001
-frsqrt.d $w27, $w20, w27: 7ff80000000000000000000000000000 w20: c1b59e0837b333337ff0000000000000 msacsr 00000001
-frsqrt.d $w28, $w6, w28: 3f733bbfdc427cab3fa5555555555555 w6: 40e62526666666664082000000000000 msacsr 00000001
-frsqrt.d $w29, $w24, w29: 3fa55555555555553fa5555555555555 w24: 40820000000000004082000000000000 msacsr 00000001
-frsqrt.d $w30, $w30, w30: 3ff6a09e667f3bcc7ff8000000000000 w30: 3fe0000000000000fff0000000000000 msacsr 00000001
-frsqrt.d $w31, $w6, w31: 7ff80000000000007ff8000000000000 w6: c005395810624dd3c3e0000020000000 msacsr 00000001
fsqrt.w $w0, $w17, w0: 7fc000007fc000007fc000003f3504f3 w17: cf000001c029cac1ff8000003f000000 msacsr 00000001
fsqrt.w $w1, $w14, w1: 7fc0000041d3c4127fc000007fc00000 w14: 80500000442f2ccdcf000001c029cac1 msacsr 00000001
fsqrt.w $w2, $w8, w2: 800000007fc000007fc0000041d3c412 w8: 80000000c447c7ae80500000442f2ccd msacsr 00000001
frcp.d $w29, $w11, w29: 3f5c71c71c71c71d3f5c71c71c71c71d w11: 40820000000000004082000000000000 msacsr 00000002
frcp.d $w30, $w30, w30: 40000000000000008000000000000000 w30: 3fe0000000000000fff0000000000000 msacsr 00000002
frcp.d $w31, $w22, w31: bfd81fa673fc86b4bbffffffc000007f w22: c005395810624dd3c3e0000020000000 msacsr 00000002
-frsqrt.w $w0, $w10, w0: 7fc000007fc000007fc000003fb504f4 w10: cf000001c029cac1ff8000003f000000 msacsr 00000002
-frsqrt.w $w1, $w20, w1: 7fc000003d1abca67fc000007fc00000 w20: 80500000442f2ccdcf000001c029cac1 msacsr 00000002
-frsqrt.w $w2, $w26, w2: ff8000007fc000007fc000003d1abca6 w26: 80000000c447c7ae80500000442f2ccd msacsr 00000002
-frsqrt.w $w3, $w12, w3: 7f8000003d44c9f8ff8000007fc00000 w12: 0000000043d89d7180000000c447c7ae msacsr 00000002
-frsqrt.w $w4, $w0, w4: 5f21e89c7fc000007f8000003d44c9f8 w0: 00500000bf3333330000000043d89d71 msacsr 00000002
-frsqrt.w $w5, $w22, w5: 3bd77f473f7416205f21e89c7fc00000 w22: 46b4a3143f8ccccd00500000bf333333 msacsr 00000002
-frsqrt.w $w6, $w26, w6: 000000007fc000003bd77f473f741620 w26: 7f800000c70dabb346b4a3143f8ccccd msacsr 00000002
-frsqrt.w $w7, $w14, w7: 7fc000007fc00000000000007fc00000 w14: c029cac1c791bfa97f800000c70dabb3 msacsr 00000002
-frsqrt.w $w8, $w8, w8: 3d2aaaab3c7349e07fc000007fc00000 w8: 44100000458db99ac029cac1c791bfa9 msacsr 00000002
-frsqrt.w $w9, $w17, w9: 3d2aaaab3d2aaaab3d2aaaab3c7349e0 w17: 441000004410000044100000458db99a msacsr 00000002
-frsqrt.w $w10, $w28, w10: 7fc000007fc000007fc000003fb504f4 w28: cf000001c029cac1ff8000003f000000 msacsr 00000002
-frsqrt.w $w11, $w8, w11: 7fc000003d1abca67fc000007fc00000 w8: 80500000442f2ccdcf000001c029cac1 msacsr 00000002
-frsqrt.w $w12, $w16, w12: ff8000007fc000007fc000003d1abca6 w16: 80000000c447c7ae80500000442f2ccd msacsr 00000002
-frsqrt.w $w13, $w9, w13: 7f8000003d44c9f8ff8000007fc00000 w9: 0000000043d89d7180000000c447c7ae msacsr 00000002
-frsqrt.w $w14, $w3, w14: 5f21e89c7fc000007f8000003d44c9f8 w3: 00500000bf3333330000000043d89d71 msacsr 00000002
-frsqrt.w $w15, $w21, w15: 3bd77f473f7416205f21e89c7fc00000 w21: 46b4a3143f8ccccd00500000bf333333 msacsr 00000002
-frsqrt.w $w16, $w9, w16: 000000007fc000003bd77f473f741620 w9: 7f800000c70dabb346b4a3143f8ccccd msacsr 00000002
-frsqrt.w $w17, $w14, w17: 7fc000007fc00000000000007fc00000 w14: c029cac1c791bfa97f800000c70dabb3 msacsr 00000002
-frsqrt.w $w18, $w10, w18: 3d2aaaab3c7349e07fc000007fc00000 w10: 44100000458db99ac029cac1c791bfa9 msacsr 00000002
-frsqrt.w $w19, $w17, w19: 3d2aaaab3d2aaaab3d2aaaab3c7349e0 w17: 441000004410000044100000458db99a msacsr 00000002
-frsqrt.w $w20, $w25, w20: 7fc000007fc000007fc000003fb504f4 w25: cf000001c029cac1ff8000003f000000 msacsr 00000002
-frsqrt.w $w21, $w7, w21: 7fc000003d1abca67fc000007fc00000 w7: 80500000442f2ccdcf000001c029cac1 msacsr 00000002
-frsqrt.w $w22, $w26, w22: ff8000007fc000007fc000003d1abca6 w26: 80000000c447c7ae80500000442f2ccd msacsr 00000002
-frsqrt.w $w23, $w28, w23: 7f8000003d44c9f8ff8000007fc00000 w28: 0000000043d89d7180000000c447c7ae msacsr 00000002
-frsqrt.w $w24, $w4, w24: 5f21e89c7fc000007f8000003d44c9f8 w4: 00500000bf3333330000000043d89d71 msacsr 00000002
-frsqrt.w $w25, $w8, w25: 3bd77f473f7416205f21e89c7fc00000 w8: 46b4a3143f8ccccd00500000bf333333 msacsr 00000002
-frsqrt.w $w26, $w1, w26: 000000007fc000003bd77f473f741620 w1: 7f800000c70dabb346b4a3143f8ccccd msacsr 00000002
-frsqrt.w $w27, $w13, w27: 7fc000007fc00000000000007fc00000 w13: c029cac1c791bfa97f800000c70dabb3 msacsr 00000002
-frsqrt.w $w28, $w14, w28: 3d2aaaab3c7349e07fc000007fc00000 w14: 44100000458db99ac029cac1c791bfa9 msacsr 00000002
-frsqrt.w $w29, $w12, w29: 3d2aaaab3d2aaaab3d2aaaab3c7349e0 w12: 441000004410000044100000458db99a msacsr 00000002
-frsqrt.w $w30, $w30, w30: 7fc000007fc000007fc000003fb504f4 w30: cf000001c029cac1ff8000003f000000 msacsr 00000002
-frsqrt.w $w31, $w17, w31: 7fc000003d1abca67fc000007fc00000 w17: 80500000442f2ccdcf000001c029cac1 msacsr 00000002
-frsqrt.d $w0, $w2, w0: 3ff6a09e667f3bcd7ff8000000000000 w2: 3fe0000000000000fff0000000000000 msacsr 00000002
-frsqrt.d $w1, $w14, w1: 7ff80000000000007ff8000000000000 w14: c005395810624dd3c3e0000020000000 msacsr 00000002
-frsqrt.d $w2, $w24, w2: 3fa35794ad44f3ef7ff8000000000000 w24: 4085e5999999999a8000006000000000 msacsr 00000002
-frsqrt.d $w3, $w20, w3: 7ff8000000000000fff0000000000000 w20: c088f8f5c28f5c298000000000000000 msacsr 00000002
-frsqrt.d $w4, $w25, w4: 3fa8993eff4a591f7ff0000000000000 w25: 407b13ae147ae1480000000000000000 msacsr 00000002
-frsqrt.d $w5, $w0, w5: 7ff8000000000000604a20bd700c2c3e w0: bfe66666666666660000006000000000 msacsr 00000002
-frsqrt.d $w6, $w26, w6: 3fee82c3f9d89e1c3f458a24b20e5b9e w26: 3ff199999999999a4141a828c51eb852 msacsr 00000002
-frsqrt.d $w7, $w26, w7: 7ff80000000000000000000000000000 w26: c1b59e0837b333337ff0000000000000 msacsr 00000002
-frsqrt.d $w8, $w8, w8: 3f733bbfdc427cac3fa5555555555556 w8: 40e62526666666664082000000000000 msacsr 00000002
-frsqrt.d $w9, $w19, w9: 3fa55555555555563fa5555555555556 w19: 40820000000000004082000000000000 msacsr 00000002
-frsqrt.d $w10, $w27, w10: 3ff6a09e667f3bcd7ff8000000000000 w27: 3fe0000000000000fff0000000000000 msacsr 00000002
-frsqrt.d $w11, $w8, w11: 7ff80000000000007ff8000000000000 w8: c005395810624dd3c3e0000020000000 msacsr 00000002
-frsqrt.d $w12, $w2, w12: 3fa35794ad44f3ef7ff8000000000000 w2: 4085e5999999999a8000006000000000 msacsr 00000002
-frsqrt.d $w13, $w31, w13: 7ff8000000000000fff0000000000000 w31: c088f8f5c28f5c298000000000000000 msacsr 00000002
-frsqrt.d $w14, $w0, w14: 3fa8993eff4a591f7ff0000000000000 w0: 407b13ae147ae1480000000000000000 msacsr 00000002
-frsqrt.d $w15, $w30, w15: 7ff8000000000000604a20bd700c2c3e w30: bfe66666666666660000006000000000 msacsr 00000002
-frsqrt.d $w16, $w5, w16: 3fee82c3f9d89e1c3f458a24b20e5b9e w5: 3ff199999999999a4141a828c51eb852 msacsr 00000002
-frsqrt.d $w17, $w3, w17: 7ff80000000000000000000000000000 w3: c1b59e0837b333337ff0000000000000 msacsr 00000002
-frsqrt.d $w18, $w7, w18: 3f733bbfdc427cac3fa5555555555556 w7: 40e62526666666664082000000000000 msacsr 00000002
-frsqrt.d $w19, $w3, w19: 3fa55555555555563fa5555555555556 w3: 40820000000000004082000000000000 msacsr 00000002
-frsqrt.d $w20, $w30, w20: 3ff6a09e667f3bcd7ff8000000000000 w30: 3fe0000000000000fff0000000000000 msacsr 00000002
-frsqrt.d $w21, $w27, w21: 7ff80000000000007ff8000000000000 w27: c005395810624dd3c3e0000020000000 msacsr 00000002
-frsqrt.d $w22, $w26, w22: 3fa35794ad44f3ef7ff8000000000000 w26: 4085e5999999999a8000006000000000 msacsr 00000002
-frsqrt.d $w23, $w20, w23: 7ff8000000000000fff0000000000000 w20: c088f8f5c28f5c298000000000000000 msacsr 00000002
-frsqrt.d $w24, $w7, w24: 3fa8993eff4a591f7ff0000000000000 w7: 407b13ae147ae1480000000000000000 msacsr 00000002
-frsqrt.d $w25, $w10, w25: 7ff8000000000000604a20bd700c2c3e w10: bfe66666666666660000006000000000 msacsr 00000002
-frsqrt.d $w26, $w29, w26: 3fee82c3f9d89e1c3f458a24b20e5b9e w29: 3ff199999999999a4141a828c51eb852 msacsr 00000002
-frsqrt.d $w27, $w20, w27: 7ff80000000000000000000000000000 w20: c1b59e0837b333337ff0000000000000 msacsr 00000002
-frsqrt.d $w28, $w6, w28: 3f733bbfdc427cac3fa5555555555556 w6: 40e62526666666664082000000000000 msacsr 00000002
-frsqrt.d $w29, $w24, w29: 3fa55555555555563fa5555555555556 w24: 40820000000000004082000000000000 msacsr 00000002
-frsqrt.d $w30, $w30, w30: 3ff6a09e667f3bcd7ff8000000000000 w30: 3fe0000000000000fff0000000000000 msacsr 00000002
-frsqrt.d $w31, $w6, w31: 7ff80000000000007ff8000000000000 w6: c005395810624dd3c3e0000020000000 msacsr 00000002
fsqrt.w $w0, $w17, w0: 7fc000007fc000007fc000003f3504f4 w17: cf000001c029cac1ff8000003f000000 msacsr 00000002
fsqrt.w $w1, $w14, w1: 7fc0000041d3c4137fc000007fc00000 w14: 80500000442f2ccdcf000001c029cac1 msacsr 00000002
fsqrt.w $w2, $w8, w2: 800000007fc000007fc0000041d3c413 w8: 80000000c447c7ae80500000442f2ccd msacsr 00000002
frcp.d $w29, $w11, w29: 3f5c71c71c71c71c3f5c71c71c71c71c w11: 40820000000000004082000000000000 msacsr 00000003
frcp.d $w30, $w30, w30: 40000000000000008000000000000000 w30: 3fe0000000000000fff0000000000000 msacsr 00000003
frcp.d $w31, $w22, w31: bfd81fa673fc86b5bbffffffc0000080 w22: c005395810624dd3c3e0000020000000 msacsr 00000003
-frsqrt.w $w0, $w10, w0: 7fc000007fc000007fc000003fb504f3 w10: cf000001c029cac1ff8000003f000000 msacsr 00000003
-frsqrt.w $w1, $w20, w1: 7fc000003d1abca57fc000007fc00000 w20: 80500000442f2ccdcf000001c029cac1 msacsr 00000003
-frsqrt.w $w2, $w26, w2: ff8000007fc000007fc000003d1abca5 w26: 80000000c447c7ae80500000442f2ccd msacsr 00000003
-frsqrt.w $w3, $w12, w3: 7f8000003d44c9f7ff8000007fc00000 w12: 0000000043d89d7180000000c447c7ae msacsr 00000003
-frsqrt.w $w4, $w0, w4: 5f21e89b7fc000007f8000003d44c9f7 w0: 00500000bf3333330000000043d89d71 msacsr 00000003
-frsqrt.w $w5, $w22, w5: 3bd77f463f74161f5f21e89b7fc00000 w22: 46b4a3143f8ccccd00500000bf333333 msacsr 00000003
-frsqrt.w $w6, $w26, w6: 000000007fc000003bd77f463f74161f w26: 7f800000c70dabb346b4a3143f8ccccd msacsr 00000003
-frsqrt.w $w7, $w14, w7: 7fc000007fc00000000000007fc00000 w14: c029cac1c791bfa97f800000c70dabb3 msacsr 00000003
-frsqrt.w $w8, $w8, w8: 3d2aaaaa3c7349df7fc000007fc00000 w8: 44100000458db99ac029cac1c791bfa9 msacsr 00000003
-frsqrt.w $w9, $w17, w9: 3d2aaaaa3d2aaaaa3d2aaaaa3c7349df w17: 441000004410000044100000458db99a msacsr 00000003
-frsqrt.w $w10, $w28, w10: 7fc000007fc000007fc000003fb504f3 w28: cf000001c029cac1ff8000003f000000 msacsr 00000003
-frsqrt.w $w11, $w8, w11: 7fc000003d1abca57fc000007fc00000 w8: 80500000442f2ccdcf000001c029cac1 msacsr 00000003
-frsqrt.w $w12, $w16, w12: ff8000007fc000007fc000003d1abca5 w16: 80000000c447c7ae80500000442f2ccd msacsr 00000003
-frsqrt.w $w13, $w9, w13: 7f8000003d44c9f7ff8000007fc00000 w9: 0000000043d89d7180000000c447c7ae msacsr 00000003
-frsqrt.w $w14, $w3, w14: 5f21e89b7fc000007f8000003d44c9f7 w3: 00500000bf3333330000000043d89d71 msacsr 00000003
-frsqrt.w $w15, $w21, w15: 3bd77f463f74161f5f21e89b7fc00000 w21: 46b4a3143f8ccccd00500000bf333333 msacsr 00000003
-frsqrt.w $w16, $w9, w16: 000000007fc000003bd77f463f74161f w9: 7f800000c70dabb346b4a3143f8ccccd msacsr 00000003
-frsqrt.w $w17, $w14, w17: 7fc000007fc00000000000007fc00000 w14: c029cac1c791bfa97f800000c70dabb3 msacsr 00000003
-frsqrt.w $w18, $w10, w18: 3d2aaaaa3c7349df7fc000007fc00000 w10: 44100000458db99ac029cac1c791bfa9 msacsr 00000003
-frsqrt.w $w19, $w17, w19: 3d2aaaaa3d2aaaaa3d2aaaaa3c7349df w17: 441000004410000044100000458db99a msacsr 00000003
-frsqrt.w $w20, $w25, w20: 7fc000007fc000007fc000003fb504f3 w25: cf000001c029cac1ff8000003f000000 msacsr 00000003
-frsqrt.w $w21, $w7, w21: 7fc000003d1abca57fc000007fc00000 w7: 80500000442f2ccdcf000001c029cac1 msacsr 00000003
-frsqrt.w $w22, $w26, w22: ff8000007fc000007fc000003d1abca5 w26: 80000000c447c7ae80500000442f2ccd msacsr 00000003
-frsqrt.w $w23, $w28, w23: 7f8000003d44c9f7ff8000007fc00000 w28: 0000000043d89d7180000000c447c7ae msacsr 00000003
-frsqrt.w $w24, $w4, w24: 5f21e89b7fc000007f8000003d44c9f7 w4: 00500000bf3333330000000043d89d71 msacsr 00000003
-frsqrt.w $w25, $w8, w25: 3bd77f463f74161f5f21e89b7fc00000 w8: 46b4a3143f8ccccd00500000bf333333 msacsr 00000003
-frsqrt.w $w26, $w1, w26: 000000007fc000003bd77f463f74161f w1: 7f800000c70dabb346b4a3143f8ccccd msacsr 00000003
-frsqrt.w $w27, $w13, w27: 7fc000007fc00000000000007fc00000 w13: c029cac1c791bfa97f800000c70dabb3 msacsr 00000003
-frsqrt.w $w28, $w14, w28: 3d2aaaaa3c7349df7fc000007fc00000 w14: 44100000458db99ac029cac1c791bfa9 msacsr 00000003
-frsqrt.w $w29, $w12, w29: 3d2aaaaa3d2aaaaa3d2aaaaa3c7349df w12: 441000004410000044100000458db99a msacsr 00000003
-frsqrt.w $w30, $w30, w30: 7fc000007fc000007fc000003fb504f3 w30: cf000001c029cac1ff8000003f000000 msacsr 00000003
-frsqrt.w $w31, $w17, w31: 7fc000003d1abca57fc000007fc00000 w17: 80500000442f2ccdcf000001c029cac1 msacsr 00000003
-frsqrt.d $w0, $w2, w0: 3ff6a09e667f3bcc7ff8000000000000 w2: 3fe0000000000000fff0000000000000 msacsr 00000003
-frsqrt.d $w1, $w14, w1: 7ff80000000000007ff8000000000000 w14: c005395810624dd3c3e0000020000000 msacsr 00000003
-frsqrt.d $w2, $w24, w2: 3fa35794ad44f3ee7ff8000000000000 w24: 4085e5999999999a8000006000000000 msacsr 00000003
-frsqrt.d $w3, $w20, w3: 7ff8000000000000fff0000000000000 w20: c088f8f5c28f5c298000000000000000 msacsr 00000003
-frsqrt.d $w4, $w25, w4: 3fa8993eff4a591e7ff0000000000000 w25: 407b13ae147ae1480000000000000000 msacsr 00000003
-frsqrt.d $w5, $w0, w5: 7ff8000000000000604a20bd700c2c3d w0: bfe66666666666660000006000000000 msacsr 00000003
-frsqrt.d $w6, $w26, w6: 3fee82c3f9d89e1b3f458a24b20e5b9d w26: 3ff199999999999a4141a828c51eb852 msacsr 00000003
-frsqrt.d $w7, $w26, w7: 7ff80000000000000000000000000000 w26: c1b59e0837b333337ff0000000000000 msacsr 00000003
-frsqrt.d $w8, $w8, w8: 3f733bbfdc427cab3fa5555555555555 w8: 40e62526666666664082000000000000 msacsr 00000003
-frsqrt.d $w9, $w19, w9: 3fa55555555555553fa5555555555555 w19: 40820000000000004082000000000000 msacsr 00000003
-frsqrt.d $w10, $w27, w10: 3ff6a09e667f3bcc7ff8000000000000 w27: 3fe0000000000000fff0000000000000 msacsr 00000003
-frsqrt.d $w11, $w8, w11: 7ff80000000000007ff8000000000000 w8: c005395810624dd3c3e0000020000000 msacsr 00000003
-frsqrt.d $w12, $w2, w12: 3fa35794ad44f3ee7ff8000000000000 w2: 4085e5999999999a8000006000000000 msacsr 00000003
-frsqrt.d $w13, $w31, w13: 7ff8000000000000fff0000000000000 w31: c088f8f5c28f5c298000000000000000 msacsr 00000003
-frsqrt.d $w14, $w0, w14: 3fa8993eff4a591e7ff0000000000000 w0: 407b13ae147ae1480000000000000000 msacsr 00000003
-frsqrt.d $w15, $w30, w15: 7ff8000000000000604a20bd700c2c3d w30: bfe66666666666660000006000000000 msacsr 00000003
-frsqrt.d $w16, $w5, w16: 3fee82c3f9d89e1b3f458a24b20e5b9d w5: 3ff199999999999a4141a828c51eb852 msacsr 00000003
-frsqrt.d $w17, $w3, w17: 7ff80000000000000000000000000000 w3: c1b59e0837b333337ff0000000000000 msacsr 00000003
-frsqrt.d $w18, $w7, w18: 3f733bbfdc427cab3fa5555555555555 w7: 40e62526666666664082000000000000 msacsr 00000003
-frsqrt.d $w19, $w3, w19: 3fa55555555555553fa5555555555555 w3: 40820000000000004082000000000000 msacsr 00000003
-frsqrt.d $w20, $w30, w20: 3ff6a09e667f3bcc7ff8000000000000 w30: 3fe0000000000000fff0000000000000 msacsr 00000003
-frsqrt.d $w21, $w27, w21: 7ff80000000000007ff8000000000000 w27: c005395810624dd3c3e0000020000000 msacsr 00000003
-frsqrt.d $w22, $w26, w22: 3fa35794ad44f3ee7ff8000000000000 w26: 4085e5999999999a8000006000000000 msacsr 00000003
-frsqrt.d $w23, $w20, w23: 7ff8000000000000fff0000000000000 w20: c088f8f5c28f5c298000000000000000 msacsr 00000003
-frsqrt.d $w24, $w7, w24: 3fa8993eff4a591e7ff0000000000000 w7: 407b13ae147ae1480000000000000000 msacsr 00000003
-frsqrt.d $w25, $w10, w25: 7ff8000000000000604a20bd700c2c3d w10: bfe66666666666660000006000000000 msacsr 00000003
-frsqrt.d $w26, $w29, w26: 3fee82c3f9d89e1b3f458a24b20e5b9d w29: 3ff199999999999a4141a828c51eb852 msacsr 00000003
-frsqrt.d $w27, $w20, w27: 7ff80000000000000000000000000000 w20: c1b59e0837b333337ff0000000000000 msacsr 00000003
-frsqrt.d $w28, $w6, w28: 3f733bbfdc427cab3fa5555555555555 w6: 40e62526666666664082000000000000 msacsr 00000003
-frsqrt.d $w29, $w24, w29: 3fa55555555555553fa5555555555555 w24: 40820000000000004082000000000000 msacsr 00000003
-frsqrt.d $w30, $w30, w30: 3ff6a09e667f3bcc7ff8000000000000 w30: 3fe0000000000000fff0000000000000 msacsr 00000003
-frsqrt.d $w31, $w6, w31: 7ff80000000000007ff8000000000000 w6: c005395810624dd3c3e0000020000000 msacsr 00000003
fsqrt.w $w0, $w17, w0: 7fc000007fc000007fc000003f3504f3 w17: cf000001c029cac1ff8000003f000000 msacsr 00000003
fsqrt.w $w1, $w14, w1: 7fc0000041d3c4127fc000007fc00000 w14: 80500000442f2ccdcf000001c029cac1 msacsr 00000003
fsqrt.w $w2, $w8, w2: 800000007fc000007fc0000041d3c412 w8: 80000000c447c7ae80500000442f2ccd msacsr 00000003
ffqr.d $w29, $w4, w29: 3fe10400000000003fe1636e66800000 w4: 441000004410000044100000458db99a msacsr 00000003
ffqr.d $w30, $w15, w30: bf700000000000003fdf800000000000 w15: cf000001c029cac1ff8000003f000000 msacsr 00000003
ffqr.d $w31, $w28, w31: bfd87fffff800000bfdfeb1a9f800000 w28: 80500000442f2ccdcf000001c029cac1 msacsr 00000003
+frsqrt.w $w0, $w10, msacsr=0: PASS
+frsqrt.w $w1, $w20, msacsr=0: PASS
+frsqrt.w $w2, $w26, msacsr=0: PASS
+frsqrt.w $w3, $w12, msacsr=0: PASS
+frsqrt.w $w4, $w0, msacsr=0: PASS
+frsqrt.w $w5, $w22, msacsr=0: PASS
+frsqrt.w $w6, $w26, msacsr=0: PASS
+frsqrt.w $w7, $w14, msacsr=0: PASS
+frsqrt.w $w8, $w8, msacsr=0: PASS
+frsqrt.w $w9, $w17, msacsr=0: PASS
+frsqrt.w $w10, $w28, msacsr=0: PASS
+frsqrt.w $w11, $w8, msacsr=0: PASS
+frsqrt.w $w12, $w16, msacsr=0: PASS
+frsqrt.w $w13, $w9, msacsr=0: PASS
+frsqrt.w $w14, $w3, msacsr=0: PASS
+frsqrt.w $w15, $w21, msacsr=0: PASS
+frsqrt.w $w16, $w9, msacsr=0: PASS
+frsqrt.w $w17, $w14, msacsr=0: PASS
+frsqrt.w $w18, $w10, msacsr=0: PASS
+frsqrt.w $w19, $w17, msacsr=0: PASS
+frsqrt.w $w20, $w25, msacsr=0: PASS
+frsqrt.w $w21, $w7, msacsr=0: PASS
+frsqrt.w $w22, $w26, msacsr=0: PASS
+frsqrt.w $w23, $w28, msacsr=0: PASS
+frsqrt.w $w24, $w4, msacsr=0: PASS
+frsqrt.w $w25, $w8, msacsr=0: PASS
+frsqrt.w $w26, $w1, msacsr=0: PASS
+frsqrt.w $w27, $w13, msacsr=0: PASS
+frsqrt.w $w28, $w14, msacsr=0: PASS
+frsqrt.w $w29, $w12, msacsr=0: PASS
+frsqrt.w $w30, $w30, msacsr=0: PASS
+frsqrt.w $w31, $w17, msacsr=0: PASS
+frsqrt.d $w0, $w2, msacsr=0: PASS
+frsqrt.d $w1, $w14, msacsr=0: PASS
+frsqrt.d $w2, $w24, msacsr=0: PASS
+frsqrt.d $w3, $w20, msacsr=0: PASS
+frsqrt.d $w4, $w25, msacsr=0: PASS
+frsqrt.d $w5, $w0, msacsr=0: PASS
+frsqrt.d $w6, $w26, msacsr=0: PASS
+frsqrt.d $w7, $w26, msacsr=0: PASS
+frsqrt.d $w8, $w8, msacsr=0: PASS
+frsqrt.d $w9, $w19, msacsr=0: PASS
+frsqrt.d $w10, $w27, msacsr=0: PASS
+frsqrt.d $w11, $w8, msacsr=0: PASS
+frsqrt.d $w12, $w2, msacsr=0: PASS
+frsqrt.d $w13, $w31, msacsr=0: PASS
+frsqrt.d $w14, $w0, msacsr=0: PASS
+frsqrt.d $w15, $w30, msacsr=0: PASS
+frsqrt.d $w16, $w5, msacsr=0: PASS
+frsqrt.d $w17, $w3, msacsr=0: PASS
+frsqrt.d $w18, $w7, msacsr=0: PASS
+frsqrt.d $w19, $w3, msacsr=0: PASS
+frsqrt.d $w20, $w30, msacsr=0: PASS
+frsqrt.d $w21, $w27, msacsr=0: PASS
+frsqrt.d $w22, $w26, msacsr=0: PASS
+frsqrt.d $w23, $w20, msacsr=0: PASS
+frsqrt.d $w24, $w7, msacsr=0: PASS
+frsqrt.d $w25, $w10, msacsr=0: PASS
+frsqrt.d $w26, $w29, msacsr=0: PASS
+frsqrt.d $w27, $w20, msacsr=0: PASS
+frsqrt.d $w28, $w6, msacsr=0: PASS
+frsqrt.d $w29, $w24, msacsr=0: PASS
+frsqrt.d $w30, $w30, msacsr=0: PASS
+frsqrt.d $w31, $w6, msacsr=0: PASS
+frsqrt.w $w0, $w10, msacsr=1: PASS
+frsqrt.w $w1, $w20, msacsr=1: PASS
+frsqrt.w $w2, $w26, msacsr=1: PASS
+frsqrt.w $w3, $w12, msacsr=1: PASS
+frsqrt.w $w4, $w0, msacsr=1: PASS
+frsqrt.w $w5, $w22, msacsr=1: PASS
+frsqrt.w $w6, $w26, msacsr=1: PASS
+frsqrt.w $w7, $w14, msacsr=1: PASS
+frsqrt.w $w8, $w8, msacsr=1: PASS
+frsqrt.w $w9, $w17, msacsr=1: PASS
+frsqrt.w $w10, $w28, msacsr=1: PASS
+frsqrt.w $w11, $w8, msacsr=1: PASS
+frsqrt.w $w12, $w16, msacsr=1: PASS
+frsqrt.w $w13, $w9, msacsr=1: PASS
+frsqrt.w $w14, $w3, msacsr=1: PASS
+frsqrt.w $w15, $w21, msacsr=1: PASS
+frsqrt.w $w16, $w9, msacsr=1: PASS
+frsqrt.w $w17, $w14, msacsr=1: PASS
+frsqrt.w $w18, $w10, msacsr=1: PASS
+frsqrt.w $w19, $w17, msacsr=1: PASS
+frsqrt.w $w20, $w25, msacsr=1: PASS
+frsqrt.w $w21, $w7, msacsr=1: PASS
+frsqrt.w $w22, $w26, msacsr=1: PASS
+frsqrt.w $w23, $w28, msacsr=1: PASS
+frsqrt.w $w24, $w4, msacsr=1: PASS
+frsqrt.w $w25, $w8, msacsr=1: PASS
+frsqrt.w $w26, $w1, msacsr=1: PASS
+frsqrt.w $w27, $w13, msacsr=1: PASS
+frsqrt.w $w28, $w14, msacsr=1: PASS
+frsqrt.w $w29, $w12, msacsr=1: PASS
+frsqrt.w $w30, $w30, msacsr=1: PASS
+frsqrt.w $w31, $w17, msacsr=1: PASS
+frsqrt.d $w0, $w2, msacsr=1: PASS
+frsqrt.d $w1, $w14, msacsr=1: PASS
+frsqrt.d $w2, $w24, msacsr=1: PASS
+frsqrt.d $w3, $w20, msacsr=1: PASS
+frsqrt.d $w4, $w25, msacsr=1: PASS
+frsqrt.d $w5, $w0, msacsr=1: PASS
+frsqrt.d $w6, $w26, msacsr=1: PASS
+frsqrt.d $w7, $w26, msacsr=1: PASS
+frsqrt.d $w8, $w8, msacsr=1: PASS
+frsqrt.d $w9, $w19, msacsr=1: PASS
+frsqrt.d $w10, $w27, msacsr=1: PASS
+frsqrt.d $w11, $w8, msacsr=1: PASS
+frsqrt.d $w12, $w2, msacsr=1: PASS
+frsqrt.d $w13, $w31, msacsr=1: PASS
+frsqrt.d $w14, $w0, msacsr=1: PASS
+frsqrt.d $w15, $w30, msacsr=1: PASS
+frsqrt.d $w16, $w5, msacsr=1: PASS
+frsqrt.d $w17, $w3, msacsr=1: PASS
+frsqrt.d $w18, $w7, msacsr=1: PASS
+frsqrt.d $w19, $w3, msacsr=1: PASS
+frsqrt.d $w20, $w30, msacsr=1: PASS
+frsqrt.d $w21, $w27, msacsr=1: PASS
+frsqrt.d $w22, $w26, msacsr=1: PASS
+frsqrt.d $w23, $w20, msacsr=1: PASS
+frsqrt.d $w24, $w7, msacsr=1: PASS
+frsqrt.d $w25, $w10, msacsr=1: PASS
+frsqrt.d $w26, $w29, msacsr=1: PASS
+frsqrt.d $w27, $w20, msacsr=1: PASS
+frsqrt.d $w28, $w6, msacsr=1: PASS
+frsqrt.d $w29, $w24, msacsr=1: PASS
+frsqrt.d $w30, $w30, msacsr=1: PASS
+frsqrt.d $w31, $w6, msacsr=1: PASS
+frsqrt.w $w0, $w10, msacsr=2: PASS
+frsqrt.w $w1, $w20, msacsr=2: PASS
+frsqrt.w $w2, $w26, msacsr=2: PASS
+frsqrt.w $w3, $w12, msacsr=2: PASS
+frsqrt.w $w4, $w0, msacsr=2: PASS
+frsqrt.w $w5, $w22, msacsr=2: PASS
+frsqrt.w $w6, $w26, msacsr=2: PASS
+frsqrt.w $w7, $w14, msacsr=2: PASS
+frsqrt.w $w8, $w8, msacsr=2: PASS
+frsqrt.w $w9, $w17, msacsr=2: PASS
+frsqrt.w $w10, $w28, msacsr=2: PASS
+frsqrt.w $w11, $w8, msacsr=2: PASS
+frsqrt.w $w12, $w16, msacsr=2: PASS
+frsqrt.w $w13, $w9, msacsr=2: PASS
+frsqrt.w $w14, $w3, msacsr=2: PASS
+frsqrt.w $w15, $w21, msacsr=2: PASS
+frsqrt.w $w16, $w9, msacsr=2: PASS
+frsqrt.w $w17, $w14, msacsr=2: PASS
+frsqrt.w $w18, $w10, msacsr=2: PASS
+frsqrt.w $w19, $w17, msacsr=2: PASS
+frsqrt.w $w20, $w25, msacsr=2: PASS
+frsqrt.w $w21, $w7, msacsr=2: PASS
+frsqrt.w $w22, $w26, msacsr=2: PASS
+frsqrt.w $w23, $w28, msacsr=2: PASS
+frsqrt.w $w24, $w4, msacsr=2: PASS
+frsqrt.w $w25, $w8, msacsr=2: PASS
+frsqrt.w $w26, $w1, msacsr=2: PASS
+frsqrt.w $w27, $w13, msacsr=2: PASS
+frsqrt.w $w28, $w14, msacsr=2: PASS
+frsqrt.w $w29, $w12, msacsr=2: PASS
+frsqrt.w $w30, $w30, msacsr=2: PASS
+frsqrt.w $w31, $w17, msacsr=2: PASS
+frsqrt.d $w0, $w2, msacsr=2: PASS
+frsqrt.d $w1, $w14, msacsr=2: PASS
+frsqrt.d $w2, $w24, msacsr=2: PASS
+frsqrt.d $w3, $w20, msacsr=2: PASS
+frsqrt.d $w4, $w25, msacsr=2: PASS
+frsqrt.d $w5, $w0, msacsr=2: PASS
+frsqrt.d $w6, $w26, msacsr=2: PASS
+frsqrt.d $w7, $w26, msacsr=2: PASS
+frsqrt.d $w8, $w8, msacsr=2: PASS
+frsqrt.d $w9, $w19, msacsr=2: PASS
+frsqrt.d $w10, $w27, msacsr=2: PASS
+frsqrt.d $w11, $w8, msacsr=2: PASS
+frsqrt.d $w12, $w2, msacsr=2: PASS
+frsqrt.d $w13, $w31, msacsr=2: PASS
+frsqrt.d $w14, $w0, msacsr=2: PASS
+frsqrt.d $w15, $w30, msacsr=2: PASS
+frsqrt.d $w16, $w5, msacsr=2: PASS
+frsqrt.d $w17, $w3, msacsr=2: PASS
+frsqrt.d $w18, $w7, msacsr=2: PASS
+frsqrt.d $w19, $w3, msacsr=2: PASS
+frsqrt.d $w20, $w30, msacsr=2: PASS
+frsqrt.d $w21, $w27, msacsr=2: PASS
+frsqrt.d $w22, $w26, msacsr=2: PASS
+frsqrt.d $w23, $w20, msacsr=2: PASS
+frsqrt.d $w24, $w7, msacsr=2: PASS
+frsqrt.d $w25, $w10, msacsr=2: PASS
+frsqrt.d $w26, $w29, msacsr=2: PASS
+frsqrt.d $w27, $w20, msacsr=2: PASS
+frsqrt.d $w28, $w6, msacsr=2: PASS
+frsqrt.d $w29, $w24, msacsr=2: PASS
+frsqrt.d $w30, $w30, msacsr=2: PASS
+frsqrt.d $w31, $w6, msacsr=2: PASS
+frsqrt.w $w0, $w10, msacsr=3: PASS
+frsqrt.w $w1, $w20, msacsr=3: PASS
+frsqrt.w $w2, $w26, msacsr=3: PASS
+frsqrt.w $w3, $w12, msacsr=3: PASS
+frsqrt.w $w4, $w0, msacsr=3: PASS
+frsqrt.w $w5, $w22, msacsr=3: PASS
+frsqrt.w $w6, $w26, msacsr=3: PASS
+frsqrt.w $w7, $w14, msacsr=3: PASS
+frsqrt.w $w8, $w8, msacsr=3: PASS
+frsqrt.w $w9, $w17, msacsr=3: PASS
+frsqrt.w $w10, $w28, msacsr=3: PASS
+frsqrt.w $w11, $w8, msacsr=3: PASS
+frsqrt.w $w12, $w16, msacsr=3: PASS
+frsqrt.w $w13, $w9, msacsr=3: PASS
+frsqrt.w $w14, $w3, msacsr=3: PASS
+frsqrt.w $w15, $w21, msacsr=3: PASS
+frsqrt.w $w16, $w9, msacsr=3: PASS
+frsqrt.w $w17, $w14, msacsr=3: PASS
+frsqrt.w $w18, $w10, msacsr=3: PASS
+frsqrt.w $w19, $w17, msacsr=3: PASS
+frsqrt.w $w20, $w25, msacsr=3: PASS
+frsqrt.w $w21, $w7, msacsr=3: PASS
+frsqrt.w $w22, $w26, msacsr=3: PASS
+frsqrt.w $w23, $w28, msacsr=3: PASS
+frsqrt.w $w24, $w4, msacsr=3: PASS
+frsqrt.w $w25, $w8, msacsr=3: PASS
+frsqrt.w $w26, $w1, msacsr=3: PASS
+frsqrt.w $w27, $w13, msacsr=3: PASS
+frsqrt.w $w28, $w14, msacsr=3: PASS
+frsqrt.w $w29, $w12, msacsr=3: PASS
+frsqrt.w $w30, $w30, msacsr=3: PASS
+frsqrt.w $w31, $w17, msacsr=3: PASS
+frsqrt.d $w0, $w2, msacsr=3: PASS
+frsqrt.d $w1, $w14, msacsr=3: PASS
+frsqrt.d $w2, $w24, msacsr=3: PASS
+frsqrt.d $w3, $w20, msacsr=3: PASS
+frsqrt.d $w4, $w25, msacsr=3: PASS
+frsqrt.d $w5, $w0, msacsr=3: PASS
+frsqrt.d $w6, $w26, msacsr=3: PASS
+frsqrt.d $w7, $w26, msacsr=3: PASS
+frsqrt.d $w8, $w8, msacsr=3: PASS
+frsqrt.d $w9, $w19, msacsr=3: PASS
+frsqrt.d $w10, $w27, msacsr=3: PASS
+frsqrt.d $w11, $w8, msacsr=3: PASS
+frsqrt.d $w12, $w2, msacsr=3: PASS
+frsqrt.d $w13, $w31, msacsr=3: PASS
+frsqrt.d $w14, $w0, msacsr=3: PASS
+frsqrt.d $w15, $w30, msacsr=3: PASS
+frsqrt.d $w16, $w5, msacsr=3: PASS
+frsqrt.d $w17, $w3, msacsr=3: PASS
+frsqrt.d $w18, $w7, msacsr=3: PASS
+frsqrt.d $w19, $w3, msacsr=3: PASS
+frsqrt.d $w20, $w30, msacsr=3: PASS
+frsqrt.d $w21, $w27, msacsr=3: PASS
+frsqrt.d $w22, $w26, msacsr=3: PASS
+frsqrt.d $w23, $w20, msacsr=3: PASS
+frsqrt.d $w24, $w7, msacsr=3: PASS
+frsqrt.d $w25, $w10, msacsr=3: PASS
+frsqrt.d $w26, $w29, msacsr=3: PASS
+frsqrt.d $w27, $w20, msacsr=3: PASS
+frsqrt.d $w28, $w6, msacsr=3: PASS
+frsqrt.d $w29, $w24, msacsr=3: PASS
+frsqrt.d $w30, $w30, msacsr=3: PASS
+frsqrt.d $w31, $w6, msacsr=3: PASS
Load MSA store FPU $0 cf000001c029cac1ff8000003f000000 flt 3f000000
Load MSA store FPU $1 cf000001c029cac1ff8000003f000000 flt 3f000000
Load MSA store FPU $2 cf000001c029cac1ff8000003f000000 flt 3f000000