519613 Valgrind incorrectly unpacks the result of sys_port (port_getn)
on error, leading to a ~60s wallclock time delay on every call
518217 Add PHMINPOSUW SSE4.1 support for x86
+518220 Add ROUNDPS, ROUNDSS, ROUNDPD, ROUNDSD SSE4.1 support for x86
520482 Advertise POPCNT on x86 via CPUID
520753 Advertise LZCNT via CPUID for x86 (32-bit) clients
520856 unhandled instruction bytes: 0x2E 0xFF 0x14 0x85
goto decode_success;
}
+ /* 66 0F 3A 08 /r ib = ROUNDPS imm8, xmm2/m128, xmm1 */
+ if (sz == 2 && insn[0] == 0x0F && insn[1] == 0x3A && insn[2] == 0x08) {
+
+ IRTemp src0 = newTemp(Ity_F32);
+ IRTemp src1 = newTemp(Ity_F32);
+ IRTemp src2 = newTemp(Ity_F32);
+ IRTemp src3 = newTemp(Ity_F32);
+ IRTemp res0 = newTemp(Ity_F32);
+ IRTemp res1 = newTemp(Ity_F32);
+ IRTemp res2 = newTemp(Ity_F32);
+ IRTemp res3 = newTemp(Ity_F32);
+ IRTemp rm = newTemp(Ity_I32);
+ Int imm = 0;
+
+ modrm = insn[3];
+
+ if (epartIsReg(modrm)) {
+ assign( src0,
+ getXMMRegLane32F( eregOfRM(modrm), 0 ) );
+ assign( src1,
+ getXMMRegLane32F( eregOfRM(modrm), 1 ) );
+ assign( src2,
+ getXMMRegLane32F( eregOfRM(modrm), 2 ) );
+ assign( src3,
+ getXMMRegLane32F( eregOfRM(modrm), 3 ) );
+ imm = insn[3+1];;
+ if (imm & ~15) goto decode_failure;
+ delta += 3+1+1;
+ DIP( "roundps $%d,%s,%s\n",
+ imm, nameXMMReg( eregOfRM(modrm) ),
+ nameXMMReg( gregOfRM(modrm) ) );
+ } else {
+ addr = disAMode( &alen, sorb, delta+3, dis_buf );
+ gen_SEGV_if_not_16_aligned( addr );
+ assign( src0, loadLE(Ity_F32,
+ binop(Iop_Add32, mkexpr(addr), mkU32(0) )));
+ assign( src1, loadLE(Ity_F32,
+ binop(Iop_Add32, mkexpr(addr), mkU32(4) )));
+ assign( src2, loadLE(Ity_F32,
+ binop(Iop_Add32, mkexpr(addr), mkU32(8) )));
+ assign( src3, loadLE(Ity_F32,
+ binop(Iop_Add32, mkexpr(addr), mkU32(12) )));
+ imm = insn[3+alen];
+ if (imm & ~15) goto decode_failure;
+ delta += 3+alen+1;
+ DIP( "roundps $%d,%s,%s\n",
+ imm, dis_buf, nameXMMReg( gregOfRM(modrm) ) );
+ }
+
+ /* (imm & 3) contains an Intel-encoded rounding mode. Because
+ that encoding is the same as the encoding for IRRoundingMode,
+ we can use that value directly in the IR as a rounding
+ mode. */
+ assign(rm, (imm & 4) ? get_sse_roundingmode() : mkU32(imm & 3));
+
+ assign(res0, binop(Iop_RoundF32toInt, mkexpr(rm), mkexpr(src0)) );
+ assign(res1, binop(Iop_RoundF32toInt, mkexpr(rm), mkexpr(src1)) );
+ assign(res2, binop(Iop_RoundF32toInt, mkexpr(rm), mkexpr(src2)) );
+ assign(res3, binop(Iop_RoundF32toInt, mkexpr(rm), mkexpr(src3)) );
+
+ putXMMRegLane32F( gregOfRM(modrm), 0, mkexpr(res0) );
+ putXMMRegLane32F( gregOfRM(modrm), 1, mkexpr(res1) );
+ putXMMRegLane32F( gregOfRM(modrm), 2, mkexpr(res2) );
+ putXMMRegLane32F( gregOfRM(modrm), 3, mkexpr(res3) );
+
+ goto decode_success;
+ }
+
+ /* 66 0F 3A 09 /r ib = ROUNDPD imm8, xmm2/m128, xmm1 */
+ if (sz == 2 && insn[0] == 0x0F && insn[1] == 0x3A && insn[2] == 0x09) {
+
+ IRTemp src0 = newTemp(Ity_F64);
+ IRTemp src1 = newTemp(Ity_F64);
+ IRTemp res0 = newTemp(Ity_F64);
+ IRTemp res1 = newTemp(Ity_F64);
+ IRTemp rm = newTemp(Ity_I32);
+ Int imm = 0;
+
+ modrm = insn[3];
+
+ if (epartIsReg(modrm)) {
+ assign( src0,
+ getXMMRegLane64F( eregOfRM(modrm), 0 ) );
+ assign( src1,
+ getXMMRegLane64F( eregOfRM(modrm), 1 ) );
+ imm = insn[3+1];
+ if (imm & ~15) goto decode_failure;
+ delta += 3+1+1;
+ DIP( "roundpd $%d,%s,%s\n",
+ imm, nameXMMReg( eregOfRM(modrm) ),
+ nameXMMReg( gregOfRM(modrm) ) );
+ } else {
+ addr = disAMode( &alen, sorb, delta+3, dis_buf );
+ gen_SEGV_if_not_16_aligned(addr);
+ assign( src0, loadLE(Ity_F64,
+ binop(Iop_Add32, mkexpr(addr), mkU32(0) )));
+ assign( src1, loadLE(Ity_F64,
+ binop(Iop_Add32, mkexpr(addr), mkU32(8) )));
+ imm = insn[3+alen];
+ if (imm & ~15) goto decode_failure;
+ delta += 3+alen+1;
+ DIP( "roundpd $%d,%s,%s\n",
+ imm, dis_buf, nameXMMReg( gregOfRM(modrm) ) );
+ }
+
+ /* (imm & 3) contains an Intel-encoded rounding mode. Because
+ that encoding is the same as the encoding for IRRoundingMode,
+ we can use that value directly in the IR as a rounding
+ mode. */
+ assign(rm, (imm & 4) ? get_sse_roundingmode() : mkU32(imm & 3));
+
+ assign(res0, binop(Iop_RoundF64toInt, mkexpr(rm), mkexpr(src0)) );
+ assign(res1, binop(Iop_RoundF64toInt, mkexpr(rm), mkexpr(src1)) );
+
+ putXMMRegLane64F( gregOfRM(modrm), 0, mkexpr(res0) );
+ putXMMRegLane64F( gregOfRM(modrm), 1, mkexpr(res1) );
+
+ goto decode_success;
+ }
+
/* 66 0F 3A 0B /r ib = ROUNDSD imm8, xmm2/m64, xmm1
66 0F 3A 0A /r ib = ROUNDSS imm8, xmm2/m32, xmm1
*/
}
}
-/* ------------ ROUNDPD ------------ */
-
-void do_ROUNDPD_000 ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundpd $0, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundpd $0, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void do_ROUNDPD_001 ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundpd $1, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundpd $1, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void do_ROUNDPD_010 ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundpd $2, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundpd $2, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void do_ROUNDPD_011 ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundpd $3, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundpd $3, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void do_ROUNDPD_1XX ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundpd $4, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundpd $4, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void test_ROUNDPD_w_immediate_rounding ( void )
-{
- double vals[22];
- Int i = 0;
- vals[i++] = 0.0;
- vals[i++] = -0.0;
- vals[i++] = mkPosInf();
- vals[i++] = mkNegInf();
- vals[i++] = mkPosNan();
- vals[i++] = mkNegNan();
- vals[i++] = -1.3;
- vals[i++] = -1.1;
- vals[i++] = -0.9;
- vals[i++] = -0.7;
- vals[i++] = -0.50001;
- vals[i++] = -0.49999;
- vals[i++] = -0.3;
- vals[i++] = -0.1;
- vals[i++] = 0.1;
- vals[i++] = 0.3;
- vals[i++] = 0.49999;
- vals[i++] = 0.50001;
- vals[i++] = 0.7;
- vals[i++] = 0.9;
- vals[i++] = 1.1;
- vals[i++] = 1.3;
- assert(i == 22);
-
- for (i = 0; i < sizeof(vals)/sizeof(vals[0]); i++) {
- V128 src, dst;
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- memcpy(&src[8], &vals[(i+11)%22], 8);
- do_ROUNDPD_000(False/*reg*/, &src, &dst);
- printf("r roundpd_000 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" ");
- print_double_to_double(vals[i], *(double*)(&dst[0]));
- printf(" ");
- print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- memcpy(&src[8], &vals[(i+11)%22], 8);
- do_ROUNDPD_000(True/*mem*/, &src, &dst);
- printf("m roundpd_000 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" ");
- print_double_to_double(vals[i], *(double*)(&dst[0]));
- printf(" ");
- print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
- printf("\n");
-
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- memcpy(&src[8], &vals[(i+11)%22], 8);
- do_ROUNDPD_001(False/*reg*/, &src, &dst);
- printf("r roundpd_001 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" ");
- print_double_to_double(vals[i], *(double*)(&dst[0]));
- printf(" ");
- print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- memcpy(&src[8], &vals[(i+11)%22], 8);
- do_ROUNDPD_001(True/*mem*/, &src, &dst);
- printf("m roundpd_001 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" ");
- print_double_to_double(vals[i], *(double*)(&dst[0]));
- printf(" ");
- print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
- printf("\n");
-
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- memcpy(&src[8], &vals[(i+11)%22], 8);
- do_ROUNDPD_010(False/*reg*/, &src, &dst);
- printf("r roundpd_010 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" ");
- print_double_to_double(vals[i], *(double*)(&dst[0]));
- printf(" ");
- print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- memcpy(&src[8], &vals[(i+11)%22], 8);
- do_ROUNDPD_010(True/*mem*/, &src, &dst);
- printf("m roundpd_010 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" ");
- print_double_to_double(vals[i], *(double*)(&dst[0]));
- printf(" ");
- print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
- printf("\n");
-
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- memcpy(&src[8], &vals[(i+11)%22], 8);
- do_ROUNDPD_011(False/*reg*/, &src, &dst);
- printf("r roundpd_011 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" ");
- print_double_to_double(vals[i], *(double*)(&dst[0]));
- printf(" ");
- print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- memcpy(&src[8], &vals[(i+11)%22], 8);
- do_ROUNDPD_011(True/*mem*/, &src, &dst);
- printf("m roundpd_011 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" ");
- print_double_to_double(vals[i], *(double*)(&dst[0]));
- printf(" ");
- print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
- printf("\n");
- }
-}
-
-void test_ROUNDPD_w_mxcsr_rounding ( void )
-{
- UInt rm;
- double vals[22];
- Int i = 0;
- vals[i++] = 0.0;
- vals[i++] = -0.0;
- vals[i++] = mkPosInf();
- vals[i++] = mkNegInf();
- vals[i++] = mkPosNan();
- vals[i++] = mkNegNan();
- vals[i++] = -1.3;
- vals[i++] = -1.1;
- vals[i++] = -0.9;
- vals[i++] = -0.7;
- vals[i++] = -0.50001;
- vals[i++] = -0.49999;
- vals[i++] = -0.3;
- vals[i++] = -0.1;
- vals[i++] = 0.1;
- vals[i++] = 0.3;
- vals[i++] = 0.49999;
- vals[i++] = 0.50001;
- vals[i++] = 0.7;
- vals[i++] = 0.9;
- vals[i++] = 1.1;
- vals[i++] = 1.3;
- assert(i == 22);
-
- rm = get_sse_roundingmode();
- assert(rm == 0); // 0 == RN == default
-
- for (i = 0; i < sizeof(vals)/sizeof(vals[0]); i++) {
- V128 src, dst;
-
- for (rm = 0; rm <= 3; rm++) {
- set_sse_roundingmode(rm);
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- memcpy(&src[8], &vals[(i+11)%22], 8);
- do_ROUNDPD_1XX(False/*reg*/, &src, &dst);
- printf("r (rm=%u) roundpd_1XX ", rm);
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" ");
- print_double_to_double(vals[i], *(double*)(&dst[0]));
- printf(" ");
- print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 8);
- memcpy(&src[8], &vals[(i+11)%22], 8);
- do_ROUNDPD_1XX(True/*mem*/, &src, &dst);
- printf("m (rm=%u) roundpd_1XX ", rm);
- showV128(&src);
- printf(" ");
- showV128(&dst);
- printf(" ");
- print_double_to_double(vals[i], *(double*)(&dst[0]));
- printf(" ");
- print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
- printf("\n");
- }
- }
-
- rm = get_sse_roundingmode();
- assert(rm == 3);
- set_sse_roundingmode(0);
- rm = get_sse_roundingmode();
- assert(rm == 0); // 0 == RN == default
-}
-
-/* ------------ ROUNDPS ------------ */
-
-void do_ROUNDPS_000 ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundps $0, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundps $0, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void do_ROUNDPS_001 ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundps $1, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundps $1, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void do_ROUNDPS_010 ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundps $2, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundps $2, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void do_ROUNDPS_011 ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundps $3, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundps $3, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void do_ROUNDPS_1XX ( Bool mem, V128* src, /*OUT*/V128* dst )
-{
- if (mem) {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "roundps $4, (%0), %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11"
- );
- } else {
- __asm__ __volatile__(
- "movupd (%1), %%xmm11" "\n\t"
- "movupd (%0), %%xmm2" "\n\t"
- "roundps $4, %%xmm2, %%xmm11" "\n\t"
- "movupd %%xmm11, (%1)" "\n"
- : /*OUT*/
- : /*IN*/ "r"(src), "r"(dst)
- : /*TRASH*/ "xmm11","xmm2"
- );
- }
-}
-
-void test_ROUNDPS_w_immediate_rounding ( void )
-{
- float vals[22];
- Int i = 0;
- vals[i++] = 0.0;
- vals[i++] = -0.0;
- vals[i++] = mkPosInf();
- vals[i++] = mkNegInf();
- vals[i++] = mkPosNan();
- vals[i++] = mkNegNan();
- vals[i++] = -1.3;
- vals[i++] = -1.1;
- vals[i++] = -0.9;
- vals[i++] = -0.7;
- vals[i++] = -0.50001;
- vals[i++] = -0.49999;
- vals[i++] = -0.3;
- vals[i++] = -0.1;
- vals[i++] = 0.1;
- vals[i++] = 0.3;
- vals[i++] = 0.49999;
- vals[i++] = 0.50001;
- vals[i++] = 0.7;
- vals[i++] = 0.9;
- vals[i++] = 1.1;
- vals[i++] = 1.3;
- assert(i == 22);
-
- for (i = 0; i < sizeof(vals)/sizeof(vals[0]); i++) {
- V128 src, dst;
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- memcpy(&src[4], &vals[(i+5)%22], 4);
- memcpy(&src[8], &vals[(i+11)%22], 4);
- memcpy(&src[12], &vals[(i+17)%22], 4);
- do_ROUNDPS_000(False/*reg*/, &src, &dst);
- printf("r roundps_000 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- print_floats(vals[i], *(float*)(&dst[0]));
- print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
- print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
- print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- memcpy(&src[4], &vals[(i+5)%22], 4);
- memcpy(&src[8], &vals[(i+11)%22], 4);
- memcpy(&src[12], &vals[(i+17)%22], 4);
- do_ROUNDPS_000(True/*mem*/, &src, &dst);
- printf("m roundps_000 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- print_floats(vals[i], *(float*)(&dst[0]));
- print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
- print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
- print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
- printf("\n");
-
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- memcpy(&src[4], &vals[(i+5)%22], 4);
- memcpy(&src[8], &vals[(i+11)%22], 4);
- memcpy(&src[12], &vals[(i+17)%22], 4);
- do_ROUNDPS_001(False/*reg*/, &src, &dst);
- printf("r roundps_001 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- print_floats(vals[i], *(float*)(&dst[0]));
- print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
- print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
- print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- memcpy(&src[4], &vals[(i+5)%22], 4);
- memcpy(&src[8], &vals[(i+11)%22], 4);
- memcpy(&src[12], &vals[(i+17)%22], 4);
- do_ROUNDPS_001(True/*mem*/, &src, &dst);
- printf("m roundps_001 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- print_floats(vals[i], *(float*)(&dst[0]));
- print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
- print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
- print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- memcpy(&src[4], &vals[(i+5)%22], 4);
- memcpy(&src[8], &vals[(i+11)%22], 4);
- memcpy(&src[12], &vals[(i+17)%22], 4);
- do_ROUNDPS_010(False/*reg*/, &src, &dst);
- printf("r roundps_010 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- print_floats(vals[i], *(float*)(&dst[0]));
- print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
- print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
- print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- memcpy(&src[4], &vals[(i+5)%22], 4);
- memcpy(&src[8], &vals[(i+11)%22], 4);
- memcpy(&src[12], &vals[(i+17)%22], 4);
- do_ROUNDPS_010(True/*mem*/, &src, &dst);
- printf("m roundps_010 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- print_floats(vals[i], *(float*)(&dst[0]));
- print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
- print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
- print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- memcpy(&src[4], &vals[(i+5)%22], 4);
- memcpy(&src[8], &vals[(i+11)%22], 4);
- memcpy(&src[12], &vals[(i+17)%22], 4);
- do_ROUNDPS_011(False/*reg*/, &src, &dst);
- printf("r roundps_011 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- print_floats(vals[i], *(float*)(&dst[0]));
- print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
- print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
- print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- memcpy(&src[4], &vals[(i+5)%22], 4);
- memcpy(&src[8], &vals[(i+11)%22], 4);
- memcpy(&src[12], &vals[(i+17)%22], 4);
- do_ROUNDPS_011(True/*mem*/, &src, &dst);
- printf("m roundps_011 ");
- showV128(&src);
- printf(" ");
- showV128(&dst);
- print_floats(vals[i], *(float*)(&dst[0]));
- print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
- print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
- print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
- printf("\n");
- }
-}
-
-void test_ROUNDPS_w_mxcsr_rounding ( void )
-{
- UInt rm;
- float vals[22];
- Int i = 0;
- vals[i++] = 0.0;
- vals[i++] = -0.0;
- vals[i++] = mkPosInf();
- vals[i++] = mkNegInf();
- vals[i++] = mkPosNan();
- vals[i++] = mkNegNan();
- vals[i++] = -1.3;
- vals[i++] = -1.1;
- vals[i++] = -0.9;
- vals[i++] = -0.7;
- vals[i++] = -0.50001;
- vals[i++] = -0.49999;
- vals[i++] = -0.3;
- vals[i++] = -0.1;
- vals[i++] = 0.1;
- vals[i++] = 0.3;
- vals[i++] = 0.49999;
- vals[i++] = 0.50001;
- vals[i++] = 0.7;
- vals[i++] = 0.9;
- vals[i++] = 1.1;
- vals[i++] = 1.3;
- assert(i == 22);
-
- rm = get_sse_roundingmode();
- assert(rm == 0); // 0 == RN == default
-
- for (i = 0; i < sizeof(vals)/sizeof(vals[0]); i++) {
- V128 src, dst;
-
- for (rm = 0; rm <= 3; rm++) {
- set_sse_roundingmode(rm);
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- memcpy(&src[4], &vals[(i+5)%22], 4);
- memcpy(&src[8], &vals[(i+11)%22], 4);
- memcpy(&src[12], &vals[(i+17)%22], 4);
- do_ROUNDPS_1XX(False/*reg*/, &src, &dst);
- printf("r (rm=%u) roundps_1XX ", rm);
- showV128(&src);
- printf(" ");
- showV128(&dst);
- print_floats(vals[i], *(float*)(&dst[0]));
- print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
- print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
- print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
- printf("\n");
-
- randV128(&src);
- randV128(&dst);
- memcpy(&src[0], &vals[i], 4);
- memcpy(&src[4], &vals[(i+5)%22], 4);
- memcpy(&src[8], &vals[(i+11)%22], 4);
- memcpy(&src[12], &vals[(i+17)%22], 4);
- do_ROUNDPS_1XX(True/*mem*/, &src, &dst);
- printf("m (rm=%u) roundps_1XX ", rm);
- showV128(&src);
- printf(" ");
- showV128(&dst);
- print_floats(vals[i], *(float*)(&dst[0]));
- print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
- print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
- print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
- printf("\n");
- }
- }
-
- rm = get_sse_roundingmode();
- assert(rm == 3);
- set_sse_roundingmode(0);
- rm = get_sse_roundingmode();
- assert(rm == 0); // 0 == RN == default
-}
-
/* ------------ PTEST ------------ */
void test_PTEST ( void )
}
RMArgs;
-static UChar randUChar ( void )
+static inline UChar randUChar ( void )
{
static UInt seed = 80021;
seed = 1103515245 * seed + 12345;
}
-static ULong randULong ( void )
+static inline ULong randULong ( void )
{
Int i;
ULong r = 0;
return r;
}
-static UInt randUInt ( void )
+static inline UInt randUInt ( void )
{
Int i;
UInt r = 0;
DO_mandr_r("phminposuw", src, dst);
}
+/* ------------ ROUNDPD ------------ */
+
+static inline void do_ROUNDPD_000 ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundpd $0, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundpd $0, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void do_ROUNDPD_001 ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundpd $1, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundpd $1, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void do_ROUNDPD_010 ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundpd $2, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundpd $2, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void do_ROUNDPD_011 ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundpd $3, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundpd $3, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void do_ROUNDPD_1XX ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundpd $4, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundpd $4, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ", (%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void test_ROUNDPD_w_immediate_rounding ( void )
+{
+ double vals[22];
+ Int i = 0;
+ vals[i++] = 0.0;
+ vals[i++] = -0.0;
+ vals[i++] = mkPosInf();
+ vals[i++] = mkNegInf();
+ vals[i++] = mkPosNan();
+ vals[i++] = mkNegNan();
+ vals[i++] = -1.3;
+ vals[i++] = -1.1;
+ vals[i++] = -0.9;
+ vals[i++] = -0.7;
+ vals[i++] = -0.50001;
+ vals[i++] = -0.49999;
+ vals[i++] = -0.3;
+ vals[i++] = -0.1;
+ vals[i++] = 0.1;
+ vals[i++] = 0.3;
+ vals[i++] = 0.49999;
+ vals[i++] = 0.50001;
+ vals[i++] = 0.7;
+ vals[i++] = 0.9;
+ vals[i++] = 1.1;
+ vals[i++] = 1.3;
+ assert(i == 22);
+
+ for (i = 0; i < sizeof(vals)/sizeof(vals[0]); i++) {
+ __attribute__ ( (aligned (16))) V128 src, dst;
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ memcpy(&src[8], &vals[(i+11)%22], 8);
+ do_ROUNDPD_000(False/*reg*/, &src, &dst);
+ printf("r roundpd_000 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" ");
+ print_double_to_double(vals[i], *(double*)(&dst[0]));
+ printf(" ");
+ print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ memcpy(&src[8], &vals[(i+11)%22], 8);
+ do_ROUNDPD_000(True/*mem*/, &src, &dst);
+ printf("m roundpd_000 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" ");
+ print_double_to_double(vals[i], *(double*)(&dst[0]));
+ printf(" ");
+ print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
+ printf("\n");
+
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ memcpy(&src[8], &vals[(i+11)%22], 8);
+ do_ROUNDPD_001(False/*reg*/, &src, &dst);
+ printf("r roundpd_001 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" ");
+ print_double_to_double(vals[i], *(double*)(&dst[0]));
+ printf(" ");
+ print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ memcpy(&src[8], &vals[(i+11)%22], 8);
+ do_ROUNDPD_001(True/*mem*/, &src, &dst);
+ printf("m roundpd_001 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" ");
+ print_double_to_double(vals[i], *(double*)(&dst[0]));
+ printf(" ");
+ print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
+ printf("\n");
+
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ memcpy(&src[8], &vals[(i+11)%22], 8);
+ do_ROUNDPD_010(False/*reg*/, &src, &dst);
+ printf("r roundpd_010 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" ");
+ print_double_to_double(vals[i], *(double*)(&dst[0]));
+ printf(" ");
+ print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ memcpy(&src[8], &vals[(i+11)%22], 8);
+ do_ROUNDPD_010(True/*mem*/, &src, &dst);
+ printf("m roundpd_010 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" ");
+ print_double_to_double(vals[i], *(double*)(&dst[0]));
+ printf(" ");
+ print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
+ printf("\n");
+
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ memcpy(&src[8], &vals[(i+11)%22], 8);
+ do_ROUNDPD_011(False/*reg*/, &src, &dst);
+ printf("r roundpd_011 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" ");
+ print_double_to_double(vals[i], *(double*)(&dst[0]));
+ printf(" ");
+ print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ memcpy(&src[8], &vals[(i+11)%22], 8);
+ do_ROUNDPD_011(True/*mem*/, &src, &dst);
+ printf("m roundpd_011 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" ");
+ print_double_to_double(vals[i], *(double*)(&dst[0]));
+ printf(" ");
+ print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
+ printf("\n");
+ }
+}
+
+static inline void test_ROUNDPD_w_mxcsr_rounding ( void )
+{
+ UInt rm;
+ double vals[22];
+ Int i = 0;
+ vals[i++] = 0.0;
+ vals[i++] = -0.0;
+ vals[i++] = mkPosInf();
+ vals[i++] = mkNegInf();
+ vals[i++] = mkPosNan();
+ vals[i++] = mkNegNan();
+ vals[i++] = -1.3;
+ vals[i++] = -1.1;
+ vals[i++] = -0.9;
+ vals[i++] = -0.7;
+ vals[i++] = -0.50001;
+ vals[i++] = -0.49999;
+ vals[i++] = -0.3;
+ vals[i++] = -0.1;
+ vals[i++] = 0.1;
+ vals[i++] = 0.3;
+ vals[i++] = 0.49999;
+ vals[i++] = 0.50001;
+ vals[i++] = 0.7;
+ vals[i++] = 0.9;
+ vals[i++] = 1.1;
+ vals[i++] = 1.3;
+ assert(i == 22);
+
+ rm = get_sse_roundingmode();
+ assert(rm == 0); // 0 == RN == default
+
+ for (i = 0; i < sizeof(vals)/sizeof(vals[0]); i++) {
+ __attribute__ ( (aligned (16))) V128 src, dst;
+
+ for (rm = 0; rm <= 3; rm++) {
+ set_sse_roundingmode(rm);
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ memcpy(&src[8], &vals[(i+11)%22], 8);
+ do_ROUNDPD_1XX(False/*reg*/, &src, &dst);
+ printf("r (rm=%u) roundpd_1XX ", rm);
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" ");
+ print_double_to_double(vals[i], *(double*)(&dst[0]));
+ printf(" ");
+ print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 8);
+ memcpy(&src[8], &vals[(i+11)%22], 8);
+ do_ROUNDPD_1XX(True/*mem*/, &src, &dst);
+ printf("m (rm=%u) roundpd_1XX ", rm);
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ printf(" ");
+ print_double_to_double(vals[i], *(double*)(&dst[0]));
+ printf(" ");
+ print_double_to_double(vals[(i+11)%22], *(double*)(&dst[8]));
+ printf("\n");
+ }
+ }
+
+ rm = get_sse_roundingmode();
+ assert(rm == 3);
+ set_sse_roundingmode(0);
+ rm = get_sse_roundingmode();
+ assert(rm == 0); // 0 == RN == default
+}
+
+/* ------------ ROUNDPS ------------ */
+
+static inline void do_ROUNDPS_000 ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundps $0, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ",(%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundps $0, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ",(%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void do_ROUNDPS_001 ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundps $1, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ",(%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundps $1, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ",(%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void do_ROUNDPS_010 ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundps $2, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ",(%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundps $2, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ",(%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void do_ROUNDPS_011 ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundps $3, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ",(%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundps $3, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ",(%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void do_ROUNDPS_1XX ( Bool mem, V128* src, /*OUT*/V128* dst )
+{
+ if (mem) {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "roundps $4, (%0), %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ",(%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST
+ );
+ } else {
+ __asm__ __volatile__(
+ "movupd (%1), %%" XMMREG_DST "\n\t"
+ "movupd (%0), %%xmm2" "\n\t"
+ "roundps $4, %%xmm2, %%" XMMREG_DST "\n\t"
+ "movupd %%" XMMREG_DST ",(%1)" "\n"
+ : /*OUT*/
+ : /*IN*/ "r"(src), "r"(dst)
+ : /*TRASH*/ XMMREG_DST , "xmm2"
+ );
+ }
+}
+
+static inline void test_ROUNDPS_w_immediate_rounding ( void )
+{
+ float vals[22];
+ Int i = 0;
+ vals[i++] = 0.0;
+ vals[i++] = -0.0;
+ vals[i++] = mkPosInf();
+ vals[i++] = mkNegInf();
+ vals[i++] = mkPosNan();
+ vals[i++] = mkNegNan();
+ vals[i++] = -1.3;
+ vals[i++] = -1.1;
+ vals[i++] = -0.9;
+ vals[i++] = -0.7;
+ vals[i++] = -0.50001;
+ vals[i++] = -0.49999;
+ vals[i++] = -0.3;
+ vals[i++] = -0.1;
+ vals[i++] = 0.1;
+ vals[i++] = 0.3;
+ vals[i++] = 0.49999;
+ vals[i++] = 0.50001;
+ vals[i++] = 0.7;
+ vals[i++] = 0.9;
+ vals[i++] = 1.1;
+ vals[i++] = 1.3;
+ assert(i == 22);
+
+ for (i = 0; i < sizeof(vals)/sizeof(vals[0]); i++) {
+ __attribute__ ( (aligned (16))) V128 src, dst;
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ memcpy(&src[4], &vals[(i+5)%22], 4);
+ memcpy(&src[8], &vals[(i+11)%22], 4);
+ memcpy(&src[12], &vals[(i+17)%22], 4);
+ do_ROUNDPS_000(False/*reg*/, &src, &dst);
+ printf("r roundps_000 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ print_floats(vals[i], *(float*)(&dst[0]));
+ print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
+ print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
+ print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ memcpy(&src[4], &vals[(i+5)%22], 4);
+ memcpy(&src[8], &vals[(i+11)%22], 4);
+ memcpy(&src[12], &vals[(i+17)%22], 4);
+ do_ROUNDPS_000(True/*mem*/, &src, &dst);
+ printf("m roundps_000 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ print_floats(vals[i], *(float*)(&dst[0]));
+ print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
+ print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
+ print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
+ printf("\n");
+
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ memcpy(&src[4], &vals[(i+5)%22], 4);
+ memcpy(&src[8], &vals[(i+11)%22], 4);
+ memcpy(&src[12], &vals[(i+17)%22], 4);
+ do_ROUNDPS_001(False/*reg*/, &src, &dst);
+ printf("r roundps_001 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ print_floats(vals[i], *(float*)(&dst[0]));
+ print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
+ print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
+ print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ memcpy(&src[4], &vals[(i+5)%22], 4);
+ memcpy(&src[8], &vals[(i+11)%22], 4);
+ memcpy(&src[12], &vals[(i+17)%22], 4);
+ do_ROUNDPS_001(True/*mem*/, &src, &dst);
+ printf("m roundps_001 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ print_floats(vals[i], *(float*)(&dst[0]));
+ print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
+ print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
+ print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ memcpy(&src[4], &vals[(i+5)%22], 4);
+ memcpy(&src[8], &vals[(i+11)%22], 4);
+ memcpy(&src[12], &vals[(i+17)%22], 4);
+ do_ROUNDPS_010(False/*reg*/, &src, &dst);
+ printf("r roundps_010 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ print_floats(vals[i], *(float*)(&dst[0]));
+ print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
+ print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
+ print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ memcpy(&src[4], &vals[(i+5)%22], 4);
+ memcpy(&src[8], &vals[(i+11)%22], 4);
+ memcpy(&src[12], &vals[(i+17)%22], 4);
+ do_ROUNDPS_010(True/*mem*/, &src, &dst);
+ printf("m roundps_010 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ print_floats(vals[i], *(float*)(&dst[0]));
+ print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
+ print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
+ print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ memcpy(&src[4], &vals[(i+5)%22], 4);
+ memcpy(&src[8], &vals[(i+11)%22], 4);
+ memcpy(&src[12], &vals[(i+17)%22], 4);
+ do_ROUNDPS_011(False/*reg*/, &src, &dst);
+ printf("r roundps_011 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ print_floats(vals[i], *(float*)(&dst[0]));
+ print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
+ print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
+ print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ memcpy(&src[4], &vals[(i+5)%22], 4);
+ memcpy(&src[8], &vals[(i+11)%22], 4);
+ memcpy(&src[12], &vals[(i+17)%22], 4);
+ do_ROUNDPS_011(True/*mem*/, &src, &dst);
+ printf("m roundps_011 ");
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ print_floats(vals[i], *(float*)(&dst[0]));
+ print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
+ print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
+ print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
+ printf("\n");
+ }
+}
+
+static inline void test_ROUNDPS_w_mxcsr_rounding ( void )
+{
+ UInt rm;
+ float vals[22];
+ Int i = 0;
+ vals[i++] = 0.0;
+ vals[i++] = -0.0;
+ vals[i++] = mkPosInf();
+ vals[i++] = mkNegInf();
+ vals[i++] = mkPosNan();
+ vals[i++] = mkNegNan();
+ vals[i++] = -1.3;
+ vals[i++] = -1.1;
+ vals[i++] = -0.9;
+ vals[i++] = -0.7;
+ vals[i++] = -0.50001;
+ vals[i++] = -0.49999;
+ vals[i++] = -0.3;
+ vals[i++] = -0.1;
+ vals[i++] = 0.1;
+ vals[i++] = 0.3;
+ vals[i++] = 0.49999;
+ vals[i++] = 0.50001;
+ vals[i++] = 0.7;
+ vals[i++] = 0.9;
+ vals[i++] = 1.1;
+ vals[i++] = 1.3;
+ assert(i == 22);
+
+ rm = get_sse_roundingmode();
+ assert(rm == 0); // 0 == RN == default
+
+ for (i = 0; i < sizeof(vals)/sizeof(vals[0]); i++) {
+ V128 src, dst;
+
+ for (rm = 0; rm <= 3; rm++) {
+ set_sse_roundingmode(rm);
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ memcpy(&src[4], &vals[(i+5)%22], 4);
+ memcpy(&src[8], &vals[(i+11)%22], 4);
+ memcpy(&src[12], &vals[(i+17)%22], 4);
+ do_ROUNDPS_1XX(False/*reg*/, &src, &dst);
+ printf("r (rm=%u) roundps_1XX ", rm);
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ print_floats(vals[i], *(float*)(&dst[0]));
+ print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
+ print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
+ print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
+ printf("\n");
+
+ randV128(&src);
+ randV128(&dst);
+ memcpy(&src[0], &vals[i], 4);
+ memcpy(&src[4], &vals[(i+5)%22], 4);
+ memcpy(&src[8], &vals[(i+11)%22], 4);
+ memcpy(&src[12], &vals[(i+17)%22], 4);
+ do_ROUNDPS_1XX(True/*mem*/, &src, &dst);
+ printf("m (rm=%u) roundps_1XX ", rm);
+ showV128(&src);
+ printf(" ");
+ showV128(&dst);
+ print_floats(vals[i], *(float*)(&dst[0]));
+ print_floats(vals[(i+5)%22], *(float*)(&dst[4]));
+ print_floats(vals[(i+11)%22], *(float*)(&dst[8]));
+ print_floats(vals[(i+17)%22], *(float*)(&dst[12]));
+ printf("\n");
+ }
+ }
+
+ rm = get_sse_roundingmode();
+ assert(rm == 3);
+ set_sse_roundingmode(0);
+ rm = get_sse_roundingmode();
+ assert(rm == 0); // 0 == RN == default
+}
+
#endif /* __SSE4_COMMON_H */
test_POPCNTL_x86();
test_POPCNTW_x86();
test_PHMINPOSUW();
+ test_ROUNDPD_w_immediate_rounding();
+ test_ROUNDPS_w_immediate_rounding();
+ test_ROUNDPD_w_mxcsr_rounding();
+ test_ROUNDPS_w_mxcsr_rounding();
return 0;
}
m phminposuw 08a6b8d1064a9e3ad001994e59389c1a 94e1f4cffaf12c9a9dc130995c8eed66 0000000000000000000000000005064a
r phminposuw 55555555555555555555555555555555 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 00000000000000000000000000005555
m phminposuw 55555555555555555555555555555555 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 00000000000000000000000000005555
+r roundpd_000 bfdfffd60e94ee390000000000000000 80000000000000000000000000000000 0.000000 -> 0.000000 -0.499990 -> -0.000000
+m roundpd_000 bfdfffd60e94ee390000000000000000 80000000000000000000000000000000 0.000000 -> 0.000000 -0.499990 -> -0.000000
+r roundpd_001 bfdfffd60e94ee390000000000000000 bff00000000000000000000000000000 0.000000 -> 0.000000 -0.499990 -> -1.000000
+m roundpd_001 bfdfffd60e94ee390000000000000000 bff00000000000000000000000000000 0.000000 -> 0.000000 -0.499990 -> -1.000000
+r roundpd_010 bfdfffd60e94ee390000000000000000 80000000000000000000000000000000 0.000000 -> 0.000000 -0.499990 -> -0.000000
+m roundpd_010 bfdfffd60e94ee390000000000000000 80000000000000000000000000000000 0.000000 -> 0.000000 -0.499990 -> -0.000000
+r roundpd_011 bfdfffd60e94ee390000000000000000 80000000000000000000000000000000 0.000000 -> 0.000000 -0.499990 -> -0.000000
+m roundpd_011 bfdfffd60e94ee390000000000000000 80000000000000000000000000000000 0.000000 -> 0.000000 -0.499990 -> -0.000000
+r roundpd_000 bfd33333333333338000000000000000 80000000000000008000000000000000 -0.000000 -> -0.000000 -0.300000 -> -0.000000
+m roundpd_000 bfd33333333333338000000000000000 80000000000000008000000000000000 -0.000000 -> -0.000000 -0.300000 -> -0.000000
+r roundpd_001 bfd33333333333338000000000000000 bff00000000000008000000000000000 -0.000000 -> -0.000000 -0.300000 -> -1.000000
+m roundpd_001 bfd33333333333338000000000000000 bff00000000000008000000000000000 -0.000000 -> -0.000000 -0.300000 -> -1.000000
+r roundpd_010 bfd33333333333338000000000000000 80000000000000008000000000000000 -0.000000 -> -0.000000 -0.300000 -> -0.000000
+m roundpd_010 bfd33333333333338000000000000000 80000000000000008000000000000000 -0.000000 -> -0.000000 -0.300000 -> -0.000000
+r roundpd_011 bfd33333333333338000000000000000 80000000000000008000000000000000 -0.000000 -> -0.000000 -0.300000 -> -0.000000
+m roundpd_011 bfd33333333333338000000000000000 80000000000000008000000000000000 -0.000000 -> -0.000000 -0.300000 -> -0.000000
+r roundpd_000 bfb999999999999a7ff0000000000000 80000000000000007ff0000000000000 inf -> inf -0.100000 -> -0.000000
+m roundpd_000 bfb999999999999a7ff0000000000000 80000000000000007ff0000000000000 inf -> inf -0.100000 -> -0.000000
+r roundpd_001 bfb999999999999a7ff0000000000000 bff00000000000007ff0000000000000 inf -> inf -0.100000 -> -1.000000
+m roundpd_001 bfb999999999999a7ff0000000000000 bff00000000000007ff0000000000000 inf -> inf -0.100000 -> -1.000000
+r roundpd_010 bfb999999999999a7ff0000000000000 80000000000000007ff0000000000000 inf -> inf -0.100000 -> -0.000000
+m roundpd_010 bfb999999999999a7ff0000000000000 80000000000000007ff0000000000000 inf -> inf -0.100000 -> -0.000000
+r roundpd_011 bfb999999999999a7ff0000000000000 80000000000000007ff0000000000000 inf -> inf -0.100000 -> -0.000000
+m roundpd_011 bfb999999999999a7ff0000000000000 80000000000000007ff0000000000000 inf -> inf -0.100000 -> -0.000000
+r roundpd_000 3fb999999999999afff0000000000000 0000000000000000fff0000000000000 -inf -> -inf 0.100000 -> 0.000000
+m roundpd_000 3fb999999999999afff0000000000000 0000000000000000fff0000000000000 -inf -> -inf 0.100000 -> 0.000000
+r roundpd_001 3fb999999999999afff0000000000000 0000000000000000fff0000000000000 -inf -> -inf 0.100000 -> 0.000000
+m roundpd_001 3fb999999999999afff0000000000000 0000000000000000fff0000000000000 -inf -> -inf 0.100000 -> 0.000000
+r roundpd_010 3fb999999999999afff0000000000000 3ff0000000000000fff0000000000000 -inf -> -inf 0.100000 -> 1.000000
+m roundpd_010 3fb999999999999afff0000000000000 3ff0000000000000fff0000000000000 -inf -> -inf 0.100000 -> 1.000000
+r roundpd_011 3fb999999999999afff0000000000000 0000000000000000fff0000000000000 -inf -> -inf 0.100000 -> 0.000000
+m roundpd_011 3fb999999999999afff0000000000000 0000000000000000fff0000000000000 -inf -> -inf 0.100000 -> 0.000000
+r roundpd_000 3fd33333333333337ff8000000000000 00000000000000007ff8000000000000 nan -> nan 0.300000 -> 0.000000
+m roundpd_000 3fd33333333333337ff8000000000000 00000000000000007ff8000000000000 nan -> nan 0.300000 -> 0.000000
+r roundpd_001 3fd33333333333337ff8000000000000 00000000000000007ff8000000000000 nan -> nan 0.300000 -> 0.000000
+m roundpd_001 3fd33333333333337ff8000000000000 00000000000000007ff8000000000000 nan -> nan 0.300000 -> 0.000000
+r roundpd_010 3fd33333333333337ff8000000000000 3ff00000000000007ff8000000000000 nan -> nan 0.300000 -> 1.000000
+m roundpd_010 3fd33333333333337ff8000000000000 3ff00000000000007ff8000000000000 nan -> nan 0.300000 -> 1.000000
+r roundpd_011 3fd33333333333337ff8000000000000 00000000000000007ff8000000000000 nan -> nan 0.300000 -> 0.000000
+m roundpd_011 3fd33333333333337ff8000000000000 00000000000000007ff8000000000000 nan -> nan 0.300000 -> 0.000000
+r roundpd_000 3fdfffd60e94ee39fff8000000000000 0000000000000000fff8000000000000 -nan -> -nan 0.499990 -> 0.000000
+m roundpd_000 3fdfffd60e94ee39fff8000000000000 0000000000000000fff8000000000000 -nan -> -nan 0.499990 -> 0.000000
+r roundpd_001 3fdfffd60e94ee39fff8000000000000 0000000000000000fff8000000000000 -nan -> -nan 0.499990 -> 0.000000
+m roundpd_001 3fdfffd60e94ee39fff8000000000000 0000000000000000fff8000000000000 -nan -> -nan 0.499990 -> 0.000000
+r roundpd_010 3fdfffd60e94ee39fff8000000000000 3ff0000000000000fff8000000000000 -nan -> -nan 0.499990 -> 1.000000
+m roundpd_010 3fdfffd60e94ee39fff8000000000000 3ff0000000000000fff8000000000000 -nan -> -nan 0.499990 -> 1.000000
+r roundpd_011 3fdfffd60e94ee39fff8000000000000 0000000000000000fff8000000000000 -nan -> -nan 0.499990 -> 0.000000
+m roundpd_011 3fdfffd60e94ee39fff8000000000000 0000000000000000fff8000000000000 -nan -> -nan 0.499990 -> 0.000000
+r roundpd_000 3fe00014f8b588e3bff4cccccccccccd 3ff0000000000000bff0000000000000 -1.300000 -> -1.000000 0.500010 -> 1.000000
+m roundpd_000 3fe00014f8b588e3bff4cccccccccccd 3ff0000000000000bff0000000000000 -1.300000 -> -1.000000 0.500010 -> 1.000000
+r roundpd_001 3fe00014f8b588e3bff4cccccccccccd 0000000000000000c000000000000000 -1.300000 -> -2.000000 0.500010 -> 0.000000
+m roundpd_001 3fe00014f8b588e3bff4cccccccccccd 0000000000000000c000000000000000 -1.300000 -> -2.000000 0.500010 -> 0.000000
+r roundpd_010 3fe00014f8b588e3bff4cccccccccccd 3ff0000000000000bff0000000000000 -1.300000 -> -1.000000 0.500010 -> 1.000000
+m roundpd_010 3fe00014f8b588e3bff4cccccccccccd 3ff0000000000000bff0000000000000 -1.300000 -> -1.000000 0.500010 -> 1.000000
+r roundpd_011 3fe00014f8b588e3bff4cccccccccccd 0000000000000000bff0000000000000 -1.300000 -> -1.000000 0.500010 -> 0.000000
+m roundpd_011 3fe00014f8b588e3bff4cccccccccccd 0000000000000000bff0000000000000 -1.300000 -> -1.000000 0.500010 -> 0.000000
+r roundpd_000 3fe6666666666666bff199999999999a 3ff0000000000000bff0000000000000 -1.100000 -> -1.000000 0.700000 -> 1.000000
+m roundpd_000 3fe6666666666666bff199999999999a 3ff0000000000000bff0000000000000 -1.100000 -> -1.000000 0.700000 -> 1.000000
+r roundpd_001 3fe6666666666666bff199999999999a 0000000000000000c000000000000000 -1.100000 -> -2.000000 0.700000 -> 0.000000
+m roundpd_001 3fe6666666666666bff199999999999a 0000000000000000c000000000000000 -1.100000 -> -2.000000 0.700000 -> 0.000000
+r roundpd_010 3fe6666666666666bff199999999999a 3ff0000000000000bff0000000000000 -1.100000 -> -1.000000 0.700000 -> 1.000000
+m roundpd_010 3fe6666666666666bff199999999999a 3ff0000000000000bff0000000000000 -1.100000 -> -1.000000 0.700000 -> 1.000000
+r roundpd_011 3fe6666666666666bff199999999999a 0000000000000000bff0000000000000 -1.100000 -> -1.000000 0.700000 -> 0.000000
+m roundpd_011 3fe6666666666666bff199999999999a 0000000000000000bff0000000000000 -1.100000 -> -1.000000 0.700000 -> 0.000000
+r roundpd_000 3feccccccccccccdbfeccccccccccccd 3ff0000000000000bff0000000000000 -0.900000 -> -1.000000 0.900000 -> 1.000000
+m roundpd_000 3feccccccccccccdbfeccccccccccccd 3ff0000000000000bff0000000000000 -0.900000 -> -1.000000 0.900000 -> 1.000000
+r roundpd_001 3feccccccccccccdbfeccccccccccccd 0000000000000000bff0000000000000 -0.900000 -> -1.000000 0.900000 -> 0.000000
+m roundpd_001 3feccccccccccccdbfeccccccccccccd 0000000000000000bff0000000000000 -0.900000 -> -1.000000 0.900000 -> 0.000000
+r roundpd_010 3feccccccccccccdbfeccccccccccccd 3ff00000000000008000000000000000 -0.900000 -> -0.000000 0.900000 -> 1.000000
+m roundpd_010 3feccccccccccccdbfeccccccccccccd 3ff00000000000008000000000000000 -0.900000 -> -0.000000 0.900000 -> 1.000000
+r roundpd_011 3feccccccccccccdbfeccccccccccccd 00000000000000008000000000000000 -0.900000 -> -0.000000 0.900000 -> 0.000000
+m roundpd_011 3feccccccccccccdbfeccccccccccccd 00000000000000008000000000000000 -0.900000 -> -0.000000 0.900000 -> 0.000000
+r roundpd_000 3ff199999999999abfe6666666666666 3ff0000000000000bff0000000000000 -0.700000 -> -1.000000 1.100000 -> 1.000000
+m roundpd_000 3ff199999999999abfe6666666666666 3ff0000000000000bff0000000000000 -0.700000 -> -1.000000 1.100000 -> 1.000000
+r roundpd_001 3ff199999999999abfe6666666666666 3ff0000000000000bff0000000000000 -0.700000 -> -1.000000 1.100000 -> 1.000000
+m roundpd_001 3ff199999999999abfe6666666666666 3ff0000000000000bff0000000000000 -0.700000 -> -1.000000 1.100000 -> 1.000000
+r roundpd_010 3ff199999999999abfe6666666666666 40000000000000008000000000000000 -0.700000 -> -0.000000 1.100000 -> 2.000000
+m roundpd_010 3ff199999999999abfe6666666666666 40000000000000008000000000000000 -0.700000 -> -0.000000 1.100000 -> 2.000000
+r roundpd_011 3ff199999999999abfe6666666666666 3ff00000000000008000000000000000 -0.700000 -> -0.000000 1.100000 -> 1.000000
+m roundpd_011 3ff199999999999abfe6666666666666 3ff00000000000008000000000000000 -0.700000 -> -0.000000 1.100000 -> 1.000000
+r roundpd_000 3ff4cccccccccccdbfe00014f8b588e3 3ff0000000000000bff0000000000000 -0.500010 -> -1.000000 1.300000 -> 1.000000
+m roundpd_000 3ff4cccccccccccdbfe00014f8b588e3 3ff0000000000000bff0000000000000 -0.500010 -> -1.000000 1.300000 -> 1.000000
+r roundpd_001 3ff4cccccccccccdbfe00014f8b588e3 3ff0000000000000bff0000000000000 -0.500010 -> -1.000000 1.300000 -> 1.000000
+m roundpd_001 3ff4cccccccccccdbfe00014f8b588e3 3ff0000000000000bff0000000000000 -0.500010 -> -1.000000 1.300000 -> 1.000000
+r roundpd_010 3ff4cccccccccccdbfe00014f8b588e3 40000000000000008000000000000000 -0.500010 -> -0.000000 1.300000 -> 2.000000
+m roundpd_010 3ff4cccccccccccdbfe00014f8b588e3 40000000000000008000000000000000 -0.500010 -> -0.000000 1.300000 -> 2.000000
+r roundpd_011 3ff4cccccccccccdbfe00014f8b588e3 3ff00000000000008000000000000000 -0.500010 -> -0.000000 1.300000 -> 1.000000
+m roundpd_011 3ff4cccccccccccdbfe00014f8b588e3 3ff00000000000008000000000000000 -0.500010 -> -0.000000 1.300000 -> 1.000000
+r roundpd_000 0000000000000000bfdfffd60e94ee39 00000000000000008000000000000000 -0.499990 -> -0.000000 0.000000 -> 0.000000
+m roundpd_000 0000000000000000bfdfffd60e94ee39 00000000000000008000000000000000 -0.499990 -> -0.000000 0.000000 -> 0.000000
+r roundpd_001 0000000000000000bfdfffd60e94ee39 0000000000000000bff0000000000000 -0.499990 -> -1.000000 0.000000 -> 0.000000
+m roundpd_001 0000000000000000bfdfffd60e94ee39 0000000000000000bff0000000000000 -0.499990 -> -1.000000 0.000000 -> 0.000000
+r roundpd_010 0000000000000000bfdfffd60e94ee39 00000000000000008000000000000000 -0.499990 -> -0.000000 0.000000 -> 0.000000
+m roundpd_010 0000000000000000bfdfffd60e94ee39 00000000000000008000000000000000 -0.499990 -> -0.000000 0.000000 -> 0.000000
+r roundpd_011 0000000000000000bfdfffd60e94ee39 00000000000000008000000000000000 -0.499990 -> -0.000000 0.000000 -> 0.000000
+m roundpd_011 0000000000000000bfdfffd60e94ee39 00000000000000008000000000000000 -0.499990 -> -0.000000 0.000000 -> 0.000000
+r roundpd_000 8000000000000000bfd3333333333333 80000000000000008000000000000000 -0.300000 -> -0.000000 -0.000000 -> -0.000000
+m roundpd_000 8000000000000000bfd3333333333333 80000000000000008000000000000000 -0.300000 -> -0.000000 -0.000000 -> -0.000000
+r roundpd_001 8000000000000000bfd3333333333333 8000000000000000bff0000000000000 -0.300000 -> -1.000000 -0.000000 -> -0.000000
+m roundpd_001 8000000000000000bfd3333333333333 8000000000000000bff0000000000000 -0.300000 -> -1.000000 -0.000000 -> -0.000000
+r roundpd_010 8000000000000000bfd3333333333333 80000000000000008000000000000000 -0.300000 -> -0.000000 -0.000000 -> -0.000000
+m roundpd_010 8000000000000000bfd3333333333333 80000000000000008000000000000000 -0.300000 -> -0.000000 -0.000000 -> -0.000000
+r roundpd_011 8000000000000000bfd3333333333333 80000000000000008000000000000000 -0.300000 -> -0.000000 -0.000000 -> -0.000000
+m roundpd_011 8000000000000000bfd3333333333333 80000000000000008000000000000000 -0.300000 -> -0.000000 -0.000000 -> -0.000000
+r roundpd_000 7ff0000000000000bfb999999999999a 7ff00000000000008000000000000000 -0.100000 -> -0.000000 inf -> inf
+m roundpd_000 7ff0000000000000bfb999999999999a 7ff00000000000008000000000000000 -0.100000 -> -0.000000 inf -> inf
+r roundpd_001 7ff0000000000000bfb999999999999a 7ff0000000000000bff0000000000000 -0.100000 -> -1.000000 inf -> inf
+m roundpd_001 7ff0000000000000bfb999999999999a 7ff0000000000000bff0000000000000 -0.100000 -> -1.000000 inf -> inf
+r roundpd_010 7ff0000000000000bfb999999999999a 7ff00000000000008000000000000000 -0.100000 -> -0.000000 inf -> inf
+m roundpd_010 7ff0000000000000bfb999999999999a 7ff00000000000008000000000000000 -0.100000 -> -0.000000 inf -> inf
+r roundpd_011 7ff0000000000000bfb999999999999a 7ff00000000000008000000000000000 -0.100000 -> -0.000000 inf -> inf
+m roundpd_011 7ff0000000000000bfb999999999999a 7ff00000000000008000000000000000 -0.100000 -> -0.000000 inf -> inf
+r roundpd_000 fff00000000000003fb999999999999a fff00000000000000000000000000000 0.100000 -> 0.000000 -inf -> -inf
+m roundpd_000 fff00000000000003fb999999999999a fff00000000000000000000000000000 0.100000 -> 0.000000 -inf -> -inf
+r roundpd_001 fff00000000000003fb999999999999a fff00000000000000000000000000000 0.100000 -> 0.000000 -inf -> -inf
+m roundpd_001 fff00000000000003fb999999999999a fff00000000000000000000000000000 0.100000 -> 0.000000 -inf -> -inf
+r roundpd_010 fff00000000000003fb999999999999a fff00000000000003ff0000000000000 0.100000 -> 1.000000 -inf -> -inf
+m roundpd_010 fff00000000000003fb999999999999a fff00000000000003ff0000000000000 0.100000 -> 1.000000 -inf -> -inf
+r roundpd_011 fff00000000000003fb999999999999a fff00000000000000000000000000000 0.100000 -> 0.000000 -inf -> -inf
+m roundpd_011 fff00000000000003fb999999999999a fff00000000000000000000000000000 0.100000 -> 0.000000 -inf -> -inf
+r roundpd_000 7ff80000000000003fd3333333333333 7ff80000000000000000000000000000 0.300000 -> 0.000000 nan -> nan
+m roundpd_000 7ff80000000000003fd3333333333333 7ff80000000000000000000000000000 0.300000 -> 0.000000 nan -> nan
+r roundpd_001 7ff80000000000003fd3333333333333 7ff80000000000000000000000000000 0.300000 -> 0.000000 nan -> nan
+m roundpd_001 7ff80000000000003fd3333333333333 7ff80000000000000000000000000000 0.300000 -> 0.000000 nan -> nan
+r roundpd_010 7ff80000000000003fd3333333333333 7ff80000000000003ff0000000000000 0.300000 -> 1.000000 nan -> nan
+m roundpd_010 7ff80000000000003fd3333333333333 7ff80000000000003ff0000000000000 0.300000 -> 1.000000 nan -> nan
+r roundpd_011 7ff80000000000003fd3333333333333 7ff80000000000000000000000000000 0.300000 -> 0.000000 nan -> nan
+m roundpd_011 7ff80000000000003fd3333333333333 7ff80000000000000000000000000000 0.300000 -> 0.000000 nan -> nan
+r roundpd_000 fff80000000000003fdfffd60e94ee39 fff80000000000000000000000000000 0.499990 -> 0.000000 -nan -> -nan
+m roundpd_000 fff80000000000003fdfffd60e94ee39 fff80000000000000000000000000000 0.499990 -> 0.000000 -nan -> -nan
+r roundpd_001 fff80000000000003fdfffd60e94ee39 fff80000000000000000000000000000 0.499990 -> 0.000000 -nan -> -nan
+m roundpd_001 fff80000000000003fdfffd60e94ee39 fff80000000000000000000000000000 0.499990 -> 0.000000 -nan -> -nan
+r roundpd_010 fff80000000000003fdfffd60e94ee39 fff80000000000003ff0000000000000 0.499990 -> 1.000000 -nan -> -nan
+m roundpd_010 fff80000000000003fdfffd60e94ee39 fff80000000000003ff0000000000000 0.499990 -> 1.000000 -nan -> -nan
+r roundpd_011 fff80000000000003fdfffd60e94ee39 fff80000000000000000000000000000 0.499990 -> 0.000000 -nan -> -nan
+m roundpd_011 fff80000000000003fdfffd60e94ee39 fff80000000000000000000000000000 0.499990 -> 0.000000 -nan -> -nan
+r roundpd_000 bff4cccccccccccd3fe00014f8b588e3 bff00000000000003ff0000000000000 0.500010 -> 1.000000 -1.300000 -> -1.000000
+m roundpd_000 bff4cccccccccccd3fe00014f8b588e3 bff00000000000003ff0000000000000 0.500010 -> 1.000000 -1.300000 -> -1.000000
+r roundpd_001 bff4cccccccccccd3fe00014f8b588e3 c0000000000000000000000000000000 0.500010 -> 0.000000 -1.300000 -> -2.000000
+m roundpd_001 bff4cccccccccccd3fe00014f8b588e3 c0000000000000000000000000000000 0.500010 -> 0.000000 -1.300000 -> -2.000000
+r roundpd_010 bff4cccccccccccd3fe00014f8b588e3 bff00000000000003ff0000000000000 0.500010 -> 1.000000 -1.300000 -> -1.000000
+m roundpd_010 bff4cccccccccccd3fe00014f8b588e3 bff00000000000003ff0000000000000 0.500010 -> 1.000000 -1.300000 -> -1.000000
+r roundpd_011 bff4cccccccccccd3fe00014f8b588e3 bff00000000000000000000000000000 0.500010 -> 0.000000 -1.300000 -> -1.000000
+m roundpd_011 bff4cccccccccccd3fe00014f8b588e3 bff00000000000000000000000000000 0.500010 -> 0.000000 -1.300000 -> -1.000000
+r roundpd_000 bff199999999999a3fe6666666666666 bff00000000000003ff0000000000000 0.700000 -> 1.000000 -1.100000 -> -1.000000
+m roundpd_000 bff199999999999a3fe6666666666666 bff00000000000003ff0000000000000 0.700000 -> 1.000000 -1.100000 -> -1.000000
+r roundpd_001 bff199999999999a3fe6666666666666 c0000000000000000000000000000000 0.700000 -> 0.000000 -1.100000 -> -2.000000
+m roundpd_001 bff199999999999a3fe6666666666666 c0000000000000000000000000000000 0.700000 -> 0.000000 -1.100000 -> -2.000000
+r roundpd_010 bff199999999999a3fe6666666666666 bff00000000000003ff0000000000000 0.700000 -> 1.000000 -1.100000 -> -1.000000
+m roundpd_010 bff199999999999a3fe6666666666666 bff00000000000003ff0000000000000 0.700000 -> 1.000000 -1.100000 -> -1.000000
+r roundpd_011 bff199999999999a3fe6666666666666 bff00000000000000000000000000000 0.700000 -> 0.000000 -1.100000 -> -1.000000
+m roundpd_011 bff199999999999a3fe6666666666666 bff00000000000000000000000000000 0.700000 -> 0.000000 -1.100000 -> -1.000000
+r roundpd_000 bfeccccccccccccd3feccccccccccccd bff00000000000003ff0000000000000 0.900000 -> 1.000000 -0.900000 -> -1.000000
+m roundpd_000 bfeccccccccccccd3feccccccccccccd bff00000000000003ff0000000000000 0.900000 -> 1.000000 -0.900000 -> -1.000000
+r roundpd_001 bfeccccccccccccd3feccccccccccccd bff00000000000000000000000000000 0.900000 -> 0.000000 -0.900000 -> -1.000000
+m roundpd_001 bfeccccccccccccd3feccccccccccccd bff00000000000000000000000000000 0.900000 -> 0.000000 -0.900000 -> -1.000000
+r roundpd_010 bfeccccccccccccd3feccccccccccccd 80000000000000003ff0000000000000 0.900000 -> 1.000000 -0.900000 -> -0.000000
+m roundpd_010 bfeccccccccccccd3feccccccccccccd 80000000000000003ff0000000000000 0.900000 -> 1.000000 -0.900000 -> -0.000000
+r roundpd_011 bfeccccccccccccd3feccccccccccccd 80000000000000000000000000000000 0.900000 -> 0.000000 -0.900000 -> -0.000000
+m roundpd_011 bfeccccccccccccd3feccccccccccccd 80000000000000000000000000000000 0.900000 -> 0.000000 -0.900000 -> -0.000000
+r roundpd_000 bfe66666666666663ff199999999999a bff00000000000003ff0000000000000 1.100000 -> 1.000000 -0.700000 -> -1.000000
+m roundpd_000 bfe66666666666663ff199999999999a bff00000000000003ff0000000000000 1.100000 -> 1.000000 -0.700000 -> -1.000000
+r roundpd_001 bfe66666666666663ff199999999999a bff00000000000003ff0000000000000 1.100000 -> 1.000000 -0.700000 -> -1.000000
+m roundpd_001 bfe66666666666663ff199999999999a bff00000000000003ff0000000000000 1.100000 -> 1.000000 -0.700000 -> -1.000000
+r roundpd_010 bfe66666666666663ff199999999999a 80000000000000004000000000000000 1.100000 -> 2.000000 -0.700000 -> -0.000000
+m roundpd_010 bfe66666666666663ff199999999999a 80000000000000004000000000000000 1.100000 -> 2.000000 -0.700000 -> -0.000000
+r roundpd_011 bfe66666666666663ff199999999999a 80000000000000003ff0000000000000 1.100000 -> 1.000000 -0.700000 -> -0.000000
+m roundpd_011 bfe66666666666663ff199999999999a 80000000000000003ff0000000000000 1.100000 -> 1.000000 -0.700000 -> -0.000000
+r roundpd_000 bfe00014f8b588e33ff4cccccccccccd bff00000000000003ff0000000000000 1.300000 -> 1.000000 -0.500010 -> -1.000000
+m roundpd_000 bfe00014f8b588e33ff4cccccccccccd bff00000000000003ff0000000000000 1.300000 -> 1.000000 -0.500010 -> -1.000000
+r roundpd_001 bfe00014f8b588e33ff4cccccccccccd bff00000000000003ff0000000000000 1.300000 -> 1.000000 -0.500010 -> -1.000000
+m roundpd_001 bfe00014f8b588e33ff4cccccccccccd bff00000000000003ff0000000000000 1.300000 -> 1.000000 -0.500010 -> -1.000000
+r roundpd_010 bfe00014f8b588e33ff4cccccccccccd 80000000000000004000000000000000 1.300000 -> 2.000000 -0.500010 -> -0.000000
+m roundpd_010 bfe00014f8b588e33ff4cccccccccccd 80000000000000004000000000000000 1.300000 -> 2.000000 -0.500010 -> -0.000000
+r roundpd_011 bfe00014f8b588e33ff4cccccccccccd 80000000000000003ff0000000000000 1.300000 -> 1.000000 -0.500010 -> -0.000000
+m roundpd_011 bfe00014f8b588e33ff4cccccccccccd 80000000000000003ff0000000000000 1.300000 -> 1.000000 -0.500010 -> -0.000000
+r roundps_000 3f0000a8befffeb0ffc0000000000000 3f80000080000000ffc0000000000000 0.000000: 0.000000 -nan: -nan -0.499990:-0.000000 0.500010: 1.000000
+m roundps_000 3f0000a8befffeb0ffc0000000000000 3f80000080000000ffc0000000000000 0.000000: 0.000000 -nan: -nan -0.499990:-0.000000 0.500010: 1.000000
+r roundps_001 3f0000a8befffeb0ffc0000000000000 00000000bf800000ffc0000000000000 0.000000: 0.000000 -nan: -nan -0.499990:-1.000000 0.500010: 0.000000
+m roundps_001 3f0000a8befffeb0ffc0000000000000 00000000bf800000ffc0000000000000 0.000000: 0.000000 -nan: -nan -0.499990:-1.000000 0.500010: 0.000000
+r roundps_010 3f0000a8befffeb0ffc0000000000000 3f80000080000000ffc0000000000000 0.000000: 0.000000 -nan: -nan -0.499990:-0.000000 0.500010: 1.000000
+m roundps_010 3f0000a8befffeb0ffc0000000000000 3f80000080000000ffc0000000000000 0.000000: 0.000000 -nan: -nan -0.499990:-0.000000 0.500010: 1.000000
+r roundps_011 3f0000a8befffeb0ffc0000000000000 0000000080000000ffc0000000000000 0.000000: 0.000000 -nan: -nan -0.499990:-0.000000 0.500010: 0.000000
+m roundps_011 3f0000a8befffeb0ffc0000000000000 0000000080000000ffc0000000000000 0.000000: 0.000000 -nan: -nan -0.499990:-0.000000 0.500010: 0.000000
+r roundps_000 3f333333be99999abfa6666680000000 3f80000080000000bf80000080000000 -0.000000:-0.000000 -1.300000:-1.000000 -0.300000:-0.000000 0.700000: 1.000000
+m roundps_000 3f333333be99999abfa6666680000000 3f80000080000000bf80000080000000 -0.000000:-0.000000 -1.300000:-1.000000 -0.300000:-0.000000 0.700000: 1.000000
+r roundps_001 3f333333be99999abfa6666680000000 00000000bf800000c000000080000000 -0.000000:-0.000000 -1.300000:-2.000000 -0.300000:-1.000000 0.700000: 0.000000
+m roundps_001 3f333333be99999abfa6666680000000 00000000bf800000c000000080000000 -0.000000:-0.000000 -1.300000:-2.000000 -0.300000:-1.000000 0.700000: 0.000000
+r roundps_010 3f333333be99999abfa6666680000000 3f80000080000000bf80000080000000 -0.000000:-0.000000 -1.300000:-1.000000 -0.300000:-0.000000 0.700000: 1.000000
+m roundps_010 3f333333be99999abfa6666680000000 3f80000080000000bf80000080000000 -0.000000:-0.000000 -1.300000:-1.000000 -0.300000:-0.000000 0.700000: 1.000000
+r roundps_011 3f333333be99999abfa6666680000000 0000000080000000bf80000080000000 -0.000000:-0.000000 -1.300000:-1.000000 -0.300000:-0.000000 0.700000: 0.000000
+m roundps_011 3f333333be99999abfa6666680000000 0000000080000000bf80000080000000 -0.000000:-0.000000 -1.300000:-1.000000 -0.300000:-0.000000 0.700000: 0.000000
+r roundps_000 3f666666bdcccccdbf8ccccd7f800000 3f80000080000000bf8000007f800000 inf: inf -1.100000:-1.000000 -0.100000:-0.000000 0.900000: 1.000000
+m roundps_000 3f666666bdcccccdbf8ccccd7f800000 3f80000080000000bf8000007f800000 inf: inf -1.100000:-1.000000 -0.100000:-0.000000 0.900000: 1.000000
+r roundps_001 3f666666bdcccccdbf8ccccd7f800000 00000000bf800000c00000007f800000 inf: inf -1.100000:-2.000000 -0.100000:-1.000000 0.900000: 0.000000
+m roundps_001 3f666666bdcccccdbf8ccccd7f800000 00000000bf800000c00000007f800000 inf: inf -1.100000:-2.000000 -0.100000:-1.000000 0.900000: 0.000000
+r roundps_010 3f666666bdcccccdbf8ccccd7f800000 3f80000080000000bf8000007f800000 inf: inf -1.100000:-1.000000 -0.100000:-0.000000 0.900000: 1.000000
+m roundps_010 3f666666bdcccccdbf8ccccd7f800000 3f80000080000000bf8000007f800000 inf: inf -1.100000:-1.000000 -0.100000:-0.000000 0.900000: 1.000000
+r roundps_011 3f666666bdcccccdbf8ccccd7f800000 0000000080000000bf8000007f800000 inf: inf -1.100000:-1.000000 -0.100000:-0.000000 0.900000: 0.000000
+m roundps_011 3f666666bdcccccdbf8ccccd7f800000 0000000080000000bf8000007f800000 inf: inf -1.100000:-1.000000 -0.100000:-0.000000 0.900000: 0.000000
+r roundps_000 3f8ccccd3dcccccdbf666666ff800000 3f80000000000000bf800000ff800000 -inf: -inf -0.900000:-1.000000 0.100000: 0.000000 1.100000: 1.000000
+m roundps_000 3f8ccccd3dcccccdbf666666ff800000 3f80000000000000bf800000ff800000 -inf: -inf -0.900000:-1.000000 0.100000: 0.000000 1.100000: 1.000000
+r roundps_001 3f8ccccd3dcccccdbf666666ff800000 3f80000000000000bf800000ff800000 -inf: -inf -0.900000:-1.000000 0.100000: 0.000000 1.100000: 1.000000
+m roundps_001 3f8ccccd3dcccccdbf666666ff800000 3f80000000000000bf800000ff800000 -inf: -inf -0.900000:-1.000000 0.100000: 0.000000 1.100000: 1.000000
+r roundps_010 3f8ccccd3dcccccdbf666666ff800000 400000003f80000080000000ff800000 -inf: -inf -0.900000:-0.000000 0.100000: 1.000000 1.100000: 2.000000
+m roundps_010 3f8ccccd3dcccccdbf666666ff800000 400000003f80000080000000ff800000 -inf: -inf -0.900000:-0.000000 0.100000: 1.000000 1.100000: 2.000000
+r roundps_011 3f8ccccd3dcccccdbf666666ff800000 3f8000000000000080000000ff800000 -inf: -inf -0.900000:-0.000000 0.100000: 0.000000 1.100000: 1.000000
+m roundps_011 3f8ccccd3dcccccdbf666666ff800000 3f8000000000000080000000ff800000 -inf: -inf -0.900000:-0.000000 0.100000: 0.000000 1.100000: 1.000000
+r roundps_000 3fa666663e99999abf3333337fc00000 3f80000000000000bf8000007fc00000 nan: nan -0.700000:-1.000000 0.300000: 0.000000 1.300000: 1.000000
+m roundps_000 3fa666663e99999abf3333337fc00000 3f80000000000000bf8000007fc00000 nan: nan -0.700000:-1.000000 0.300000: 0.000000 1.300000: 1.000000
+r roundps_001 3fa666663e99999abf3333337fc00000 3f80000000000000bf8000007fc00000 nan: nan -0.700000:-1.000000 0.300000: 0.000000 1.300000: 1.000000
+m roundps_001 3fa666663e99999abf3333337fc00000 3f80000000000000bf8000007fc00000 nan: nan -0.700000:-1.000000 0.300000: 0.000000 1.300000: 1.000000
+r roundps_010 3fa666663e99999abf3333337fc00000 400000003f800000800000007fc00000 nan: nan -0.700000:-0.000000 0.300000: 1.000000 1.300000: 2.000000
+m roundps_010 3fa666663e99999abf3333337fc00000 400000003f800000800000007fc00000 nan: nan -0.700000:-0.000000 0.300000: 1.000000 1.300000: 2.000000
+r roundps_011 3fa666663e99999abf3333337fc00000 3f80000000000000800000007fc00000 nan: nan -0.700000:-0.000000 0.300000: 0.000000 1.300000: 1.000000
+m roundps_011 3fa666663e99999abf3333337fc00000 3f80000000000000800000007fc00000 nan: nan -0.700000:-0.000000 0.300000: 0.000000 1.300000: 1.000000
+r roundps_000 000000003efffeb0bf0000a8ffc00000 0000000000000000bf800000ffc00000 -nan: -nan -0.500010:-1.000000 0.499990: 0.000000 0.000000: 0.000000
+m roundps_000 000000003efffeb0bf0000a8ffc00000 0000000000000000bf800000ffc00000 -nan: -nan -0.500010:-1.000000 0.499990: 0.000000 0.000000: 0.000000
+r roundps_001 000000003efffeb0bf0000a8ffc00000 0000000000000000bf800000ffc00000 -nan: -nan -0.500010:-1.000000 0.499990: 0.000000 0.000000: 0.000000
+m roundps_001 000000003efffeb0bf0000a8ffc00000 0000000000000000bf800000ffc00000 -nan: -nan -0.500010:-1.000000 0.499990: 0.000000 0.000000: 0.000000
+r roundps_010 000000003efffeb0bf0000a8ffc00000 000000003f80000080000000ffc00000 -nan: -nan -0.500010:-0.000000 0.499990: 1.000000 0.000000: 0.000000
+m roundps_010 000000003efffeb0bf0000a8ffc00000 000000003f80000080000000ffc00000 -nan: -nan -0.500010:-0.000000 0.499990: 1.000000 0.000000: 0.000000
+r roundps_011 000000003efffeb0bf0000a8ffc00000 000000000000000080000000ffc00000 -nan: -nan -0.500010:-0.000000 0.499990: 0.000000 0.000000: 0.000000
+m roundps_011 000000003efffeb0bf0000a8ffc00000 000000000000000080000000ffc00000 -nan: -nan -0.500010:-0.000000 0.499990: 0.000000 0.000000: 0.000000
+r roundps_000 800000003f0000a8befffeb0bfa66666 800000003f80000080000000bf800000 -1.300000:-1.000000 -0.499990:-0.000000 0.500010: 1.000000 -0.000000:-0.000000
+m roundps_000 800000003f0000a8befffeb0bfa66666 800000003f80000080000000bf800000 -1.300000:-1.000000 -0.499990:-0.000000 0.500010: 1.000000 -0.000000:-0.000000
+r roundps_001 800000003f0000a8befffeb0bfa66666 8000000000000000bf800000c0000000 -1.300000:-2.000000 -0.499990:-1.000000 0.500010: 0.000000 -0.000000:-0.000000
+m roundps_001 800000003f0000a8befffeb0bfa66666 8000000000000000bf800000c0000000 -1.300000:-2.000000 -0.499990:-1.000000 0.500010: 0.000000 -0.000000:-0.000000
+r roundps_010 800000003f0000a8befffeb0bfa66666 800000003f80000080000000bf800000 -1.300000:-1.000000 -0.499990:-0.000000 0.500010: 1.000000 -0.000000:-0.000000
+m roundps_010 800000003f0000a8befffeb0bfa66666 800000003f80000080000000bf800000 -1.300000:-1.000000 -0.499990:-0.000000 0.500010: 1.000000 -0.000000:-0.000000
+r roundps_011 800000003f0000a8befffeb0bfa66666 800000000000000080000000bf800000 -1.300000:-1.000000 -0.499990:-0.000000 0.500010: 0.000000 -0.000000:-0.000000
+m roundps_011 800000003f0000a8befffeb0bfa66666 800000000000000080000000bf800000 -1.300000:-1.000000 -0.499990:-0.000000 0.500010: 0.000000 -0.000000:-0.000000
+r roundps_000 7f8000003f333333be99999abf8ccccd 7f8000003f80000080000000bf800000 -1.100000:-1.000000 -0.300000:-0.000000 0.700000: 1.000000 inf: inf
+m roundps_000 7f8000003f333333be99999abf8ccccd 7f8000003f80000080000000bf800000 -1.100000:-1.000000 -0.300000:-0.000000 0.700000: 1.000000 inf: inf
+r roundps_001 7f8000003f333333be99999abf8ccccd 7f80000000000000bf800000c0000000 -1.100000:-2.000000 -0.300000:-1.000000 0.700000: 0.000000 inf: inf
+m roundps_001 7f8000003f333333be99999abf8ccccd 7f80000000000000bf800000c0000000 -1.100000:-2.000000 -0.300000:-1.000000 0.700000: 0.000000 inf: inf
+r roundps_010 7f8000003f333333be99999abf8ccccd 7f8000003f80000080000000bf800000 -1.100000:-1.000000 -0.300000:-0.000000 0.700000: 1.000000 inf: inf
+m roundps_010 7f8000003f333333be99999abf8ccccd 7f8000003f80000080000000bf800000 -1.100000:-1.000000 -0.300000:-0.000000 0.700000: 1.000000 inf: inf
+r roundps_011 7f8000003f333333be99999abf8ccccd 7f8000000000000080000000bf800000 -1.100000:-1.000000 -0.300000:-0.000000 0.700000: 0.000000 inf: inf
+m roundps_011 7f8000003f333333be99999abf8ccccd 7f8000000000000080000000bf800000 -1.100000:-1.000000 -0.300000:-0.000000 0.700000: 0.000000 inf: inf
+r roundps_000 ff8000003f666666bdcccccdbf666666 ff8000003f80000080000000bf800000 -0.900000:-1.000000 -0.100000:-0.000000 0.900000: 1.000000 -inf: -inf
+m roundps_000 ff8000003f666666bdcccccdbf666666 ff8000003f80000080000000bf800000 -0.900000:-1.000000 -0.100000:-0.000000 0.900000: 1.000000 -inf: -inf
+r roundps_001 ff8000003f666666bdcccccdbf666666 ff80000000000000bf800000bf800000 -0.900000:-1.000000 -0.100000:-1.000000 0.900000: 0.000000 -inf: -inf
+m roundps_001 ff8000003f666666bdcccccdbf666666 ff80000000000000bf800000bf800000 -0.900000:-1.000000 -0.100000:-1.000000 0.900000: 0.000000 -inf: -inf
+r roundps_010 ff8000003f666666bdcccccdbf666666 ff8000003f8000008000000080000000 -0.900000:-0.000000 -0.100000:-0.000000 0.900000: 1.000000 -inf: -inf
+m roundps_010 ff8000003f666666bdcccccdbf666666 ff8000003f8000008000000080000000 -0.900000:-0.000000 -0.100000:-0.000000 0.900000: 1.000000 -inf: -inf
+r roundps_011 ff8000003f666666bdcccccdbf666666 ff800000000000008000000080000000 -0.900000:-0.000000 -0.100000:-0.000000 0.900000: 0.000000 -inf: -inf
+m roundps_011 ff8000003f666666bdcccccdbf666666 ff800000000000008000000080000000 -0.900000:-0.000000 -0.100000:-0.000000 0.900000: 0.000000 -inf: -inf
+r roundps_000 7fc000003f8ccccd3dcccccdbf333333 7fc000003f80000000000000bf800000 -0.700000:-1.000000 0.100000: 0.000000 1.100000: 1.000000 nan: nan
+m roundps_000 7fc000003f8ccccd3dcccccdbf333333 7fc000003f80000000000000bf800000 -0.700000:-1.000000 0.100000: 0.000000 1.100000: 1.000000 nan: nan
+r roundps_001 7fc000003f8ccccd3dcccccdbf333333 7fc000003f80000000000000bf800000 -0.700000:-1.000000 0.100000: 0.000000 1.100000: 1.000000 nan: nan
+m roundps_001 7fc000003f8ccccd3dcccccdbf333333 7fc000003f80000000000000bf800000 -0.700000:-1.000000 0.100000: 0.000000 1.100000: 1.000000 nan: nan
+r roundps_010 7fc000003f8ccccd3dcccccdbf333333 7fc00000400000003f80000080000000 -0.700000:-0.000000 0.100000: 1.000000 1.100000: 2.000000 nan: nan
+m roundps_010 7fc000003f8ccccd3dcccccdbf333333 7fc00000400000003f80000080000000 -0.700000:-0.000000 0.100000: 1.000000 1.100000: 2.000000 nan: nan
+r roundps_011 7fc000003f8ccccd3dcccccdbf333333 7fc000003f8000000000000080000000 -0.700000:-0.000000 0.100000: 0.000000 1.100000: 1.000000 nan: nan
+m roundps_011 7fc000003f8ccccd3dcccccdbf333333 7fc000003f8000000000000080000000 -0.700000:-0.000000 0.100000: 0.000000 1.100000: 1.000000 nan: nan
+r roundps_000 ffc000003fa666663e99999abf0000a8 ffc000003f80000000000000bf800000 -0.500010:-1.000000 0.300000: 0.000000 1.300000: 1.000000 -nan: -nan
+m roundps_000 ffc000003fa666663e99999abf0000a8 ffc000003f80000000000000bf800000 -0.500010:-1.000000 0.300000: 0.000000 1.300000: 1.000000 -nan: -nan
+r roundps_001 ffc000003fa666663e99999abf0000a8 ffc000003f80000000000000bf800000 -0.500010:-1.000000 0.300000: 0.000000 1.300000: 1.000000 -nan: -nan
+m roundps_001 ffc000003fa666663e99999abf0000a8 ffc000003f80000000000000bf800000 -0.500010:-1.000000 0.300000: 0.000000 1.300000: 1.000000 -nan: -nan
+r roundps_010 ffc000003fa666663e99999abf0000a8 ffc00000400000003f80000080000000 -0.500010:-0.000000 0.300000: 1.000000 1.300000: 2.000000 -nan: -nan
+m roundps_010 ffc000003fa666663e99999abf0000a8 ffc00000400000003f80000080000000 -0.500010:-0.000000 0.300000: 1.000000 1.300000: 2.000000 -nan: -nan
+r roundps_011 ffc000003fa666663e99999abf0000a8 ffc000003f8000000000000080000000 -0.500010:-0.000000 0.300000: 0.000000 1.300000: 1.000000 -nan: -nan
+m roundps_011 ffc000003fa666663e99999abf0000a8 ffc000003f8000000000000080000000 -0.500010:-0.000000 0.300000: 0.000000 1.300000: 1.000000 -nan: -nan
+r roundps_000 bfa66666000000003efffeb0befffeb0 bf800000000000000000000080000000 -0.499990:-0.000000 0.499990: 0.000000 0.000000: 0.000000 -1.300000:-1.000000
+m roundps_000 bfa66666000000003efffeb0befffeb0 bf800000000000000000000080000000 -0.499990:-0.000000 0.499990: 0.000000 0.000000: 0.000000 -1.300000:-1.000000
+r roundps_001 bfa66666000000003efffeb0befffeb0 c00000000000000000000000bf800000 -0.499990:-1.000000 0.499990: 0.000000 0.000000: 0.000000 -1.300000:-2.000000
+m roundps_001 bfa66666000000003efffeb0befffeb0 c00000000000000000000000bf800000 -0.499990:-1.000000 0.499990: 0.000000 0.000000: 0.000000 -1.300000:-2.000000
+r roundps_010 bfa66666000000003efffeb0befffeb0 bf800000000000003f80000080000000 -0.499990:-0.000000 0.499990: 1.000000 0.000000: 0.000000 -1.300000:-1.000000
+m roundps_010 bfa66666000000003efffeb0befffeb0 bf800000000000003f80000080000000 -0.499990:-0.000000 0.499990: 1.000000 0.000000: 0.000000 -1.300000:-1.000000
+r roundps_011 bfa66666000000003efffeb0befffeb0 bf800000000000000000000080000000 -0.499990:-0.000000 0.499990: 0.000000 0.000000: 0.000000 -1.300000:-1.000000
+m roundps_011 bfa66666000000003efffeb0befffeb0 bf800000000000000000000080000000 -0.499990:-0.000000 0.499990: 0.000000 0.000000: 0.000000 -1.300000:-1.000000
+r roundps_000 bf8ccccd800000003f0000a8be99999a bf800000800000003f80000080000000 -0.300000:-0.000000 0.500010: 1.000000 -0.000000:-0.000000 -1.100000:-1.000000
+m roundps_000 bf8ccccd800000003f0000a8be99999a bf800000800000003f80000080000000 -0.300000:-0.000000 0.500010: 1.000000 -0.000000:-0.000000 -1.100000:-1.000000
+r roundps_001 bf8ccccd800000003f0000a8be99999a c00000008000000000000000bf800000 -0.300000:-1.000000 0.500010: 0.000000 -0.000000:-0.000000 -1.100000:-2.000000
+m roundps_001 bf8ccccd800000003f0000a8be99999a c00000008000000000000000bf800000 -0.300000:-1.000000 0.500010: 0.000000 -0.000000:-0.000000 -1.100000:-2.000000
+r roundps_010 bf8ccccd800000003f0000a8be99999a bf800000800000003f80000080000000 -0.300000:-0.000000 0.500010: 1.000000 -0.000000:-0.000000 -1.100000:-1.000000
+m roundps_010 bf8ccccd800000003f0000a8be99999a bf800000800000003f80000080000000 -0.300000:-0.000000 0.500010: 1.000000 -0.000000:-0.000000 -1.100000:-1.000000
+r roundps_011 bf8ccccd800000003f0000a8be99999a bf800000800000000000000080000000 -0.300000:-0.000000 0.500010: 0.000000 -0.000000:-0.000000 -1.100000:-1.000000
+m roundps_011 bf8ccccd800000003f0000a8be99999a bf800000800000000000000080000000 -0.300000:-0.000000 0.500010: 0.000000 -0.000000:-0.000000 -1.100000:-1.000000
+r roundps_000 bf6666667f8000003f333333bdcccccd bf8000007f8000003f80000080000000 -0.100000:-0.000000 0.700000: 1.000000 inf: inf -0.900000:-1.000000
+m roundps_000 bf6666667f8000003f333333bdcccccd bf8000007f8000003f80000080000000 -0.100000:-0.000000 0.700000: 1.000000 inf: inf -0.900000:-1.000000
+r roundps_001 bf6666667f8000003f333333bdcccccd bf8000007f80000000000000bf800000 -0.100000:-1.000000 0.700000: 0.000000 inf: inf -0.900000:-1.000000
+m roundps_001 bf6666667f8000003f333333bdcccccd bf8000007f80000000000000bf800000 -0.100000:-1.000000 0.700000: 0.000000 inf: inf -0.900000:-1.000000
+r roundps_010 bf6666667f8000003f333333bdcccccd 800000007f8000003f80000080000000 -0.100000:-0.000000 0.700000: 1.000000 inf: inf -0.900000:-0.000000
+m roundps_010 bf6666667f8000003f333333bdcccccd 800000007f8000003f80000080000000 -0.100000:-0.000000 0.700000: 1.000000 inf: inf -0.900000:-0.000000
+r roundps_011 bf6666667f8000003f333333bdcccccd 800000007f8000000000000080000000 -0.100000:-0.000000 0.700000: 0.000000 inf: inf -0.900000:-0.000000
+m roundps_011 bf6666667f8000003f333333bdcccccd 800000007f8000000000000080000000 -0.100000:-0.000000 0.700000: 0.000000 inf: inf -0.900000:-0.000000
+r roundps_000 bf333333ff8000003f6666663dcccccd bf800000ff8000003f80000000000000 0.100000: 0.000000 0.900000: 1.000000 -inf: -inf -0.700000:-1.000000
+m roundps_000 bf333333ff8000003f6666663dcccccd bf800000ff8000003f80000000000000 0.100000: 0.000000 0.900000: 1.000000 -inf: -inf -0.700000:-1.000000
+r roundps_001 bf333333ff8000003f6666663dcccccd bf800000ff8000000000000000000000 0.100000: 0.000000 0.900000: 0.000000 -inf: -inf -0.700000:-1.000000
+m roundps_001 bf333333ff8000003f6666663dcccccd bf800000ff8000000000000000000000 0.100000: 0.000000 0.900000: 0.000000 -inf: -inf -0.700000:-1.000000
+r roundps_010 bf333333ff8000003f6666663dcccccd 80000000ff8000003f8000003f800000 0.100000: 1.000000 0.900000: 1.000000 -inf: -inf -0.700000:-0.000000
+m roundps_010 bf333333ff8000003f6666663dcccccd 80000000ff8000003f8000003f800000 0.100000: 1.000000 0.900000: 1.000000 -inf: -inf -0.700000:-0.000000
+r roundps_011 bf333333ff8000003f6666663dcccccd 80000000ff8000000000000000000000 0.100000: 0.000000 0.900000: 0.000000 -inf: -inf -0.700000:-0.000000
+m roundps_011 bf333333ff8000003f6666663dcccccd 80000000ff8000000000000000000000 0.100000: 0.000000 0.900000: 0.000000 -inf: -inf -0.700000:-0.000000
+r roundps_000 bf0000a87fc000003f8ccccd3e99999a bf8000007fc000003f80000000000000 0.300000: 0.000000 1.100000: 1.000000 nan: nan -0.500010:-1.000000
+m roundps_000 bf0000a87fc000003f8ccccd3e99999a bf8000007fc000003f80000000000000 0.300000: 0.000000 1.100000: 1.000000 nan: nan -0.500010:-1.000000
+r roundps_001 bf0000a87fc000003f8ccccd3e99999a bf8000007fc000003f80000000000000 0.300000: 0.000000 1.100000: 1.000000 nan: nan -0.500010:-1.000000
+m roundps_001 bf0000a87fc000003f8ccccd3e99999a bf8000007fc000003f80000000000000 0.300000: 0.000000 1.100000: 1.000000 nan: nan -0.500010:-1.000000
+r roundps_010 bf0000a87fc000003f8ccccd3e99999a 800000007fc00000400000003f800000 0.300000: 1.000000 1.100000: 2.000000 nan: nan -0.500010:-0.000000
+m roundps_010 bf0000a87fc000003f8ccccd3e99999a 800000007fc00000400000003f800000 0.300000: 1.000000 1.100000: 2.000000 nan: nan -0.500010:-0.000000
+r roundps_011 bf0000a87fc000003f8ccccd3e99999a 800000007fc000003f80000000000000 0.300000: 0.000000 1.100000: 1.000000 nan: nan -0.500010:-0.000000
+m roundps_011 bf0000a87fc000003f8ccccd3e99999a 800000007fc000003f80000000000000 0.300000: 0.000000 1.100000: 1.000000 nan: nan -0.500010:-0.000000
+r roundps_000 befffeb0ffc000003fa666663efffeb0 80000000ffc000003f80000000000000 0.499990: 0.000000 1.300000: 1.000000 -nan: -nan -0.499990:-0.000000
+m roundps_000 befffeb0ffc000003fa666663efffeb0 80000000ffc000003f80000000000000 0.499990: 0.000000 1.300000: 1.000000 -nan: -nan -0.499990:-0.000000
+r roundps_001 befffeb0ffc000003fa666663efffeb0 bf800000ffc000003f80000000000000 0.499990: 0.000000 1.300000: 1.000000 -nan: -nan -0.499990:-1.000000
+m roundps_001 befffeb0ffc000003fa666663efffeb0 bf800000ffc000003f80000000000000 0.499990: 0.000000 1.300000: 1.000000 -nan: -nan -0.499990:-1.000000
+r roundps_010 befffeb0ffc000003fa666663efffeb0 80000000ffc00000400000003f800000 0.499990: 1.000000 1.300000: 2.000000 -nan: -nan -0.499990:-0.000000
+m roundps_010 befffeb0ffc000003fa666663efffeb0 80000000ffc00000400000003f800000 0.499990: 1.000000 1.300000: 2.000000 -nan: -nan -0.499990:-0.000000
+r roundps_011 befffeb0ffc000003fa666663efffeb0 80000000ffc000003f80000000000000 0.499990: 0.000000 1.300000: 1.000000 -nan: -nan -0.499990:-0.000000
+m roundps_011 befffeb0ffc000003fa666663efffeb0 80000000ffc000003f80000000000000 0.499990: 0.000000 1.300000: 1.000000 -nan: -nan -0.499990:-0.000000
+r roundps_000 be99999abfa66666000000003f0000a8 80000000bf800000000000003f800000 0.500010: 1.000000 0.000000: 0.000000 -1.300000:-1.000000 -0.300000:-0.000000
+m roundps_000 be99999abfa66666000000003f0000a8 80000000bf800000000000003f800000 0.500010: 1.000000 0.000000: 0.000000 -1.300000:-1.000000 -0.300000:-0.000000
+r roundps_001 be99999abfa66666000000003f0000a8 bf800000c00000000000000000000000 0.500010: 0.000000 0.000000: 0.000000 -1.300000:-2.000000 -0.300000:-1.000000
+m roundps_001 be99999abfa66666000000003f0000a8 bf800000c00000000000000000000000 0.500010: 0.000000 0.000000: 0.000000 -1.300000:-2.000000 -0.300000:-1.000000
+r roundps_010 be99999abfa66666000000003f0000a8 80000000bf800000000000003f800000 0.500010: 1.000000 0.000000: 0.000000 -1.300000:-1.000000 -0.300000:-0.000000
+m roundps_010 be99999abfa66666000000003f0000a8 80000000bf800000000000003f800000 0.500010: 1.000000 0.000000: 0.000000 -1.300000:-1.000000 -0.300000:-0.000000
+r roundps_011 be99999abfa66666000000003f0000a8 80000000bf8000000000000000000000 0.500010: 0.000000 0.000000: 0.000000 -1.300000:-1.000000 -0.300000:-0.000000
+m roundps_011 be99999abfa66666000000003f0000a8 80000000bf8000000000000000000000 0.500010: 0.000000 0.000000: 0.000000 -1.300000:-1.000000 -0.300000:-0.000000
+r roundps_000 bdcccccdbf8ccccd800000003f333333 80000000bf800000800000003f800000 0.700000: 1.000000 -0.000000:-0.000000 -1.100000:-1.000000 -0.100000:-0.000000
+m roundps_000 bdcccccdbf8ccccd800000003f333333 80000000bf800000800000003f800000 0.700000: 1.000000 -0.000000:-0.000000 -1.100000:-1.000000 -0.100000:-0.000000
+r roundps_001 bdcccccdbf8ccccd800000003f333333 bf800000c00000008000000000000000 0.700000: 0.000000 -0.000000:-0.000000 -1.100000:-2.000000 -0.100000:-1.000000
+m roundps_001 bdcccccdbf8ccccd800000003f333333 bf800000c00000008000000000000000 0.700000: 0.000000 -0.000000:-0.000000 -1.100000:-2.000000 -0.100000:-1.000000
+r roundps_010 bdcccccdbf8ccccd800000003f333333 80000000bf800000800000003f800000 0.700000: 1.000000 -0.000000:-0.000000 -1.100000:-1.000000 -0.100000:-0.000000
+m roundps_010 bdcccccdbf8ccccd800000003f333333 80000000bf800000800000003f800000 0.700000: 1.000000 -0.000000:-0.000000 -1.100000:-1.000000 -0.100000:-0.000000
+r roundps_011 bdcccccdbf8ccccd800000003f333333 80000000bf8000008000000000000000 0.700000: 0.000000 -0.000000:-0.000000 -1.100000:-1.000000 -0.100000:-0.000000
+m roundps_011 bdcccccdbf8ccccd800000003f333333 80000000bf8000008000000000000000 0.700000: 0.000000 -0.000000:-0.000000 -1.100000:-1.000000 -0.100000:-0.000000
+r roundps_000 3dcccccdbf6666667f8000003f666666 00000000bf8000007f8000003f800000 0.900000: 1.000000 inf: inf -0.900000:-1.000000 0.100000: 0.000000
+m roundps_000 3dcccccdbf6666667f8000003f666666 00000000bf8000007f8000003f800000 0.900000: 1.000000 inf: inf -0.900000:-1.000000 0.100000: 0.000000
+r roundps_001 3dcccccdbf6666667f8000003f666666 00000000bf8000007f80000000000000 0.900000: 0.000000 inf: inf -0.900000:-1.000000 0.100000: 0.000000
+m roundps_001 3dcccccdbf6666667f8000003f666666 00000000bf8000007f80000000000000 0.900000: 0.000000 inf: inf -0.900000:-1.000000 0.100000: 0.000000
+r roundps_010 3dcccccdbf6666667f8000003f666666 3f800000800000007f8000003f800000 0.900000: 1.000000 inf: inf -0.900000:-0.000000 0.100000: 1.000000
+m roundps_010 3dcccccdbf6666667f8000003f666666 3f800000800000007f8000003f800000 0.900000: 1.000000 inf: inf -0.900000:-0.000000 0.100000: 1.000000
+r roundps_011 3dcccccdbf6666667f8000003f666666 00000000800000007f80000000000000 0.900000: 0.000000 inf: inf -0.900000:-0.000000 0.100000: 0.000000
+m roundps_011 3dcccccdbf6666667f8000003f666666 00000000800000007f80000000000000 0.900000: 0.000000 inf: inf -0.900000:-0.000000 0.100000: 0.000000
+r roundps_000 3e99999abf333333ff8000003f8ccccd 00000000bf800000ff8000003f800000 1.100000: 1.000000 -inf: -inf -0.700000:-1.000000 0.300000: 0.000000
+m roundps_000 3e99999abf333333ff8000003f8ccccd 00000000bf800000ff8000003f800000 1.100000: 1.000000 -inf: -inf -0.700000:-1.000000 0.300000: 0.000000
+r roundps_001 3e99999abf333333ff8000003f8ccccd 00000000bf800000ff8000003f800000 1.100000: 1.000000 -inf: -inf -0.700000:-1.000000 0.300000: 0.000000
+m roundps_001 3e99999abf333333ff8000003f8ccccd 00000000bf800000ff8000003f800000 1.100000: 1.000000 -inf: -inf -0.700000:-1.000000 0.300000: 0.000000
+r roundps_010 3e99999abf333333ff8000003f8ccccd 3f80000080000000ff80000040000000 1.100000: 2.000000 -inf: -inf -0.700000:-0.000000 0.300000: 1.000000
+m roundps_010 3e99999abf333333ff8000003f8ccccd 3f80000080000000ff80000040000000 1.100000: 2.000000 -inf: -inf -0.700000:-0.000000 0.300000: 1.000000
+r roundps_011 3e99999abf333333ff8000003f8ccccd 0000000080000000ff8000003f800000 1.100000: 1.000000 -inf: -inf -0.700000:-0.000000 0.300000: 0.000000
+m roundps_011 3e99999abf333333ff8000003f8ccccd 0000000080000000ff8000003f800000 1.100000: 1.000000 -inf: -inf -0.700000:-0.000000 0.300000: 0.000000
+r roundps_000 3efffeb0bf0000a87fc000003fa66666 00000000bf8000007fc000003f800000 1.300000: 1.000000 nan: nan -0.500010:-1.000000 0.499990: 0.000000
+m roundps_000 3efffeb0bf0000a87fc000003fa66666 00000000bf8000007fc000003f800000 1.300000: 1.000000 nan: nan -0.500010:-1.000000 0.499990: 0.000000
+r roundps_001 3efffeb0bf0000a87fc000003fa66666 00000000bf8000007fc000003f800000 1.300000: 1.000000 nan: nan -0.500010:-1.000000 0.499990: 0.000000
+m roundps_001 3efffeb0bf0000a87fc000003fa66666 00000000bf8000007fc000003f800000 1.300000: 1.000000 nan: nan -0.500010:-1.000000 0.499990: 0.000000
+r roundps_010 3efffeb0bf0000a87fc000003fa66666 3f800000800000007fc0000040000000 1.300000: 2.000000 nan: nan -0.500010:-0.000000 0.499990: 1.000000
+m roundps_010 3efffeb0bf0000a87fc000003fa66666 3f800000800000007fc0000040000000 1.300000: 2.000000 nan: nan -0.500010:-0.000000 0.499990: 1.000000
+r roundps_011 3efffeb0bf0000a87fc000003fa66666 00000000800000007fc000003f800000 1.300000: 1.000000 nan: nan -0.500010:-0.000000 0.499990: 0.000000
+m roundps_011 3efffeb0bf0000a87fc000003fa66666 00000000800000007fc000003f800000 1.300000: 1.000000 nan: nan -0.500010:-0.000000 0.499990: 0.000000
+r (rm=0) roundpd_1XX bfdfffd60e94ee390000000000000000 80000000000000000000000000000000 0.000000 -> 0.000000 -0.499990 -> -0.000000
+m (rm=0) roundpd_1XX bfdfffd60e94ee390000000000000000 80000000000000000000000000000000 0.000000 -> 0.000000 -0.499990 -> -0.000000
+r (rm=1) roundpd_1XX bfdfffd60e94ee390000000000000000 bff00000000000000000000000000000 0.000000 -> 0.000000 -0.499990 -> -1.000000
+m (rm=1) roundpd_1XX bfdfffd60e94ee390000000000000000 bff00000000000000000000000000000 0.000000 -> 0.000000 -0.499990 -> -1.000000
+r (rm=2) roundpd_1XX bfdfffd60e94ee390000000000000000 80000000000000000000000000000000 0.000000 -> 0.000000 -0.499990 -> -0.000000
+m (rm=2) roundpd_1XX bfdfffd60e94ee390000000000000000 80000000000000000000000000000000 0.000000 -> 0.000000 -0.499990 -> -0.000000
+r (rm=3) roundpd_1XX bfdfffd60e94ee390000000000000000 80000000000000000000000000000000 0.000000 -> 0.000000 -0.499990 -> -0.000000
+m (rm=3) roundpd_1XX bfdfffd60e94ee390000000000000000 80000000000000000000000000000000 0.000000 -> 0.000000 -0.499990 -> -0.000000
+r (rm=0) roundpd_1XX bfd33333333333338000000000000000 80000000000000008000000000000000 -0.000000 -> -0.000000 -0.300000 -> -0.000000
+m (rm=0) roundpd_1XX bfd33333333333338000000000000000 80000000000000008000000000000000 -0.000000 -> -0.000000 -0.300000 -> -0.000000
+r (rm=1) roundpd_1XX bfd33333333333338000000000000000 bff00000000000008000000000000000 -0.000000 -> -0.000000 -0.300000 -> -1.000000
+m (rm=1) roundpd_1XX bfd33333333333338000000000000000 bff00000000000008000000000000000 -0.000000 -> -0.000000 -0.300000 -> -1.000000
+r (rm=2) roundpd_1XX bfd33333333333338000000000000000 80000000000000008000000000000000 -0.000000 -> -0.000000 -0.300000 -> -0.000000
+m (rm=2) roundpd_1XX bfd33333333333338000000000000000 80000000000000008000000000000000 -0.000000 -> -0.000000 -0.300000 -> -0.000000
+r (rm=3) roundpd_1XX bfd33333333333338000000000000000 80000000000000008000000000000000 -0.000000 -> -0.000000 -0.300000 -> -0.000000
+m (rm=3) roundpd_1XX bfd33333333333338000000000000000 80000000000000008000000000000000 -0.000000 -> -0.000000 -0.300000 -> -0.000000
+r (rm=0) roundpd_1XX bfb999999999999a7ff0000000000000 80000000000000007ff0000000000000 inf -> inf -0.100000 -> -0.000000
+m (rm=0) roundpd_1XX bfb999999999999a7ff0000000000000 80000000000000007ff0000000000000 inf -> inf -0.100000 -> -0.000000
+r (rm=1) roundpd_1XX bfb999999999999a7ff0000000000000 bff00000000000007ff0000000000000 inf -> inf -0.100000 -> -1.000000
+m (rm=1) roundpd_1XX bfb999999999999a7ff0000000000000 bff00000000000007ff0000000000000 inf -> inf -0.100000 -> -1.000000
+r (rm=2) roundpd_1XX bfb999999999999a7ff0000000000000 80000000000000007ff0000000000000 inf -> inf -0.100000 -> -0.000000
+m (rm=2) roundpd_1XX bfb999999999999a7ff0000000000000 80000000000000007ff0000000000000 inf -> inf -0.100000 -> -0.000000
+r (rm=3) roundpd_1XX bfb999999999999a7ff0000000000000 80000000000000007ff0000000000000 inf -> inf -0.100000 -> -0.000000
+m (rm=3) roundpd_1XX bfb999999999999a7ff0000000000000 80000000000000007ff0000000000000 inf -> inf -0.100000 -> -0.000000
+r (rm=0) roundpd_1XX 3fb999999999999afff0000000000000 0000000000000000fff0000000000000 -inf -> -inf 0.100000 -> 0.000000
+m (rm=0) roundpd_1XX 3fb999999999999afff0000000000000 0000000000000000fff0000000000000 -inf -> -inf 0.100000 -> 0.000000
+r (rm=1) roundpd_1XX 3fb999999999999afff0000000000000 0000000000000000fff0000000000000 -inf -> -inf 0.100000 -> 0.000000
+m (rm=1) roundpd_1XX 3fb999999999999afff0000000000000 0000000000000000fff0000000000000 -inf -> -inf 0.100000 -> 0.000000
+r (rm=2) roundpd_1XX 3fb999999999999afff0000000000000 3ff0000000000000fff0000000000000 -inf -> -inf 0.100000 -> 1.000000
+m (rm=2) roundpd_1XX 3fb999999999999afff0000000000000 3ff0000000000000fff0000000000000 -inf -> -inf 0.100000 -> 1.000000
+r (rm=3) roundpd_1XX 3fb999999999999afff0000000000000 0000000000000000fff0000000000000 -inf -> -inf 0.100000 -> 0.000000
+m (rm=3) roundpd_1XX 3fb999999999999afff0000000000000 0000000000000000fff0000000000000 -inf -> -inf 0.100000 -> 0.000000
+r (rm=0) roundpd_1XX 3fd33333333333337ff8000000000000 00000000000000007ff8000000000000 nan -> nan 0.300000 -> 0.000000
+m (rm=0) roundpd_1XX 3fd33333333333337ff8000000000000 00000000000000007ff8000000000000 nan -> nan 0.300000 -> 0.000000
+r (rm=1) roundpd_1XX 3fd33333333333337ff8000000000000 00000000000000007ff8000000000000 nan -> nan 0.300000 -> 0.000000
+m (rm=1) roundpd_1XX 3fd33333333333337ff8000000000000 00000000000000007ff8000000000000 nan -> nan 0.300000 -> 0.000000
+r (rm=2) roundpd_1XX 3fd33333333333337ff8000000000000 3ff00000000000007ff8000000000000 nan -> nan 0.300000 -> 1.000000
+m (rm=2) roundpd_1XX 3fd33333333333337ff8000000000000 3ff00000000000007ff8000000000000 nan -> nan 0.300000 -> 1.000000
+r (rm=3) roundpd_1XX 3fd33333333333337ff8000000000000 00000000000000007ff8000000000000 nan -> nan 0.300000 -> 0.000000
+m (rm=3) roundpd_1XX 3fd33333333333337ff8000000000000 00000000000000007ff8000000000000 nan -> nan 0.300000 -> 0.000000
+r (rm=0) roundpd_1XX 3fdfffd60e94ee39fff8000000000000 0000000000000000fff8000000000000 -nan -> -nan 0.499990 -> 0.000000
+m (rm=0) roundpd_1XX 3fdfffd60e94ee39fff8000000000000 0000000000000000fff8000000000000 -nan -> -nan 0.499990 -> 0.000000
+r (rm=1) roundpd_1XX 3fdfffd60e94ee39fff8000000000000 0000000000000000fff8000000000000 -nan -> -nan 0.499990 -> 0.000000
+m (rm=1) roundpd_1XX 3fdfffd60e94ee39fff8000000000000 0000000000000000fff8000000000000 -nan -> -nan 0.499990 -> 0.000000
+r (rm=2) roundpd_1XX 3fdfffd60e94ee39fff8000000000000 3ff0000000000000fff8000000000000 -nan -> -nan 0.499990 -> 1.000000
+m (rm=2) roundpd_1XX 3fdfffd60e94ee39fff8000000000000 3ff0000000000000fff8000000000000 -nan -> -nan 0.499990 -> 1.000000
+r (rm=3) roundpd_1XX 3fdfffd60e94ee39fff8000000000000 0000000000000000fff8000000000000 -nan -> -nan 0.499990 -> 0.000000
+m (rm=3) roundpd_1XX 3fdfffd60e94ee39fff8000000000000 0000000000000000fff8000000000000 -nan -> -nan 0.499990 -> 0.000000
+r (rm=0) roundpd_1XX 3fe00014f8b588e3bff4cccccccccccd 3ff0000000000000bff0000000000000 -1.300000 -> -1.000000 0.500010 -> 1.000000
+m (rm=0) roundpd_1XX 3fe00014f8b588e3bff4cccccccccccd 3ff0000000000000bff0000000000000 -1.300000 -> -1.000000 0.500010 -> 1.000000
+r (rm=1) roundpd_1XX 3fe00014f8b588e3bff4cccccccccccd 0000000000000000c000000000000000 -1.300000 -> -2.000000 0.500010 -> 0.000000
+m (rm=1) roundpd_1XX 3fe00014f8b588e3bff4cccccccccccd 0000000000000000c000000000000000 -1.300000 -> -2.000000 0.500010 -> 0.000000
+r (rm=2) roundpd_1XX 3fe00014f8b588e3bff4cccccccccccd 3ff0000000000000bff0000000000000 -1.300000 -> -1.000000 0.500010 -> 1.000000
+m (rm=2) roundpd_1XX 3fe00014f8b588e3bff4cccccccccccd 3ff0000000000000bff0000000000000 -1.300000 -> -1.000000 0.500010 -> 1.000000
+r (rm=3) roundpd_1XX 3fe00014f8b588e3bff4cccccccccccd 0000000000000000bff0000000000000 -1.300000 -> -1.000000 0.500010 -> 0.000000
+m (rm=3) roundpd_1XX 3fe00014f8b588e3bff4cccccccccccd 0000000000000000bff0000000000000 -1.300000 -> -1.000000 0.500010 -> 0.000000
+r (rm=0) roundpd_1XX 3fe6666666666666bff199999999999a 3ff0000000000000bff0000000000000 -1.100000 -> -1.000000 0.700000 -> 1.000000
+m (rm=0) roundpd_1XX 3fe6666666666666bff199999999999a 3ff0000000000000bff0000000000000 -1.100000 -> -1.000000 0.700000 -> 1.000000
+r (rm=1) roundpd_1XX 3fe6666666666666bff199999999999a 0000000000000000c000000000000000 -1.100000 -> -2.000000 0.700000 -> 0.000000
+m (rm=1) roundpd_1XX 3fe6666666666666bff199999999999a 0000000000000000c000000000000000 -1.100000 -> -2.000000 0.700000 -> 0.000000
+r (rm=2) roundpd_1XX 3fe6666666666666bff199999999999a 3ff0000000000000bff0000000000000 -1.100000 -> -1.000000 0.700000 -> 1.000000
+m (rm=2) roundpd_1XX 3fe6666666666666bff199999999999a 3ff0000000000000bff0000000000000 -1.100000 -> -1.000000 0.700000 -> 1.000000
+r (rm=3) roundpd_1XX 3fe6666666666666bff199999999999a 0000000000000000bff0000000000000 -1.100000 -> -1.000000 0.700000 -> 0.000000
+m (rm=3) roundpd_1XX 3fe6666666666666bff199999999999a 0000000000000000bff0000000000000 -1.100000 -> -1.000000 0.700000 -> 0.000000
+r (rm=0) roundpd_1XX 3feccccccccccccdbfeccccccccccccd 3ff0000000000000bff0000000000000 -0.900000 -> -1.000000 0.900000 -> 1.000000
+m (rm=0) roundpd_1XX 3feccccccccccccdbfeccccccccccccd 3ff0000000000000bff0000000000000 -0.900000 -> -1.000000 0.900000 -> 1.000000
+r (rm=1) roundpd_1XX 3feccccccccccccdbfeccccccccccccd 0000000000000000bff0000000000000 -0.900000 -> -1.000000 0.900000 -> 0.000000
+m (rm=1) roundpd_1XX 3feccccccccccccdbfeccccccccccccd 0000000000000000bff0000000000000 -0.900000 -> -1.000000 0.900000 -> 0.000000
+r (rm=2) roundpd_1XX 3feccccccccccccdbfeccccccccccccd 3ff00000000000008000000000000000 -0.900000 -> -0.000000 0.900000 -> 1.000000
+m (rm=2) roundpd_1XX 3feccccccccccccdbfeccccccccccccd 3ff00000000000008000000000000000 -0.900000 -> -0.000000 0.900000 -> 1.000000
+r (rm=3) roundpd_1XX 3feccccccccccccdbfeccccccccccccd 00000000000000008000000000000000 -0.900000 -> -0.000000 0.900000 -> 0.000000
+m (rm=3) roundpd_1XX 3feccccccccccccdbfeccccccccccccd 00000000000000008000000000000000 -0.900000 -> -0.000000 0.900000 -> 0.000000
+r (rm=0) roundpd_1XX 3ff199999999999abfe6666666666666 3ff0000000000000bff0000000000000 -0.700000 -> -1.000000 1.100000 -> 1.000000
+m (rm=0) roundpd_1XX 3ff199999999999abfe6666666666666 3ff0000000000000bff0000000000000 -0.700000 -> -1.000000 1.100000 -> 1.000000
+r (rm=1) roundpd_1XX 3ff199999999999abfe6666666666666 3ff0000000000000bff0000000000000 -0.700000 -> -1.000000 1.100000 -> 1.000000
+m (rm=1) roundpd_1XX 3ff199999999999abfe6666666666666 3ff0000000000000bff0000000000000 -0.700000 -> -1.000000 1.100000 -> 1.000000
+r (rm=2) roundpd_1XX 3ff199999999999abfe6666666666666 40000000000000008000000000000000 -0.700000 -> -0.000000 1.100000 -> 2.000000
+m (rm=2) roundpd_1XX 3ff199999999999abfe6666666666666 40000000000000008000000000000000 -0.700000 -> -0.000000 1.100000 -> 2.000000
+r (rm=3) roundpd_1XX 3ff199999999999abfe6666666666666 3ff00000000000008000000000000000 -0.700000 -> -0.000000 1.100000 -> 1.000000
+m (rm=3) roundpd_1XX 3ff199999999999abfe6666666666666 3ff00000000000008000000000000000 -0.700000 -> -0.000000 1.100000 -> 1.000000
+r (rm=0) roundpd_1XX 3ff4cccccccccccdbfe00014f8b588e3 3ff0000000000000bff0000000000000 -0.500010 -> -1.000000 1.300000 -> 1.000000
+m (rm=0) roundpd_1XX 3ff4cccccccccccdbfe00014f8b588e3 3ff0000000000000bff0000000000000 -0.500010 -> -1.000000 1.300000 -> 1.000000
+r (rm=1) roundpd_1XX 3ff4cccccccccccdbfe00014f8b588e3 3ff0000000000000bff0000000000000 -0.500010 -> -1.000000 1.300000 -> 1.000000
+m (rm=1) roundpd_1XX 3ff4cccccccccccdbfe00014f8b588e3 3ff0000000000000bff0000000000000 -0.500010 -> -1.000000 1.300000 -> 1.000000
+r (rm=2) roundpd_1XX 3ff4cccccccccccdbfe00014f8b588e3 40000000000000008000000000000000 -0.500010 -> -0.000000 1.300000 -> 2.000000
+m (rm=2) roundpd_1XX 3ff4cccccccccccdbfe00014f8b588e3 40000000000000008000000000000000 -0.500010 -> -0.000000 1.300000 -> 2.000000
+r (rm=3) roundpd_1XX 3ff4cccccccccccdbfe00014f8b588e3 3ff00000000000008000000000000000 -0.500010 -> -0.000000 1.300000 -> 1.000000
+m (rm=3) roundpd_1XX 3ff4cccccccccccdbfe00014f8b588e3 3ff00000000000008000000000000000 -0.500010 -> -0.000000 1.300000 -> 1.000000
+r (rm=0) roundpd_1XX 0000000000000000bfdfffd60e94ee39 00000000000000008000000000000000 -0.499990 -> -0.000000 0.000000 -> 0.000000
+m (rm=0) roundpd_1XX 0000000000000000bfdfffd60e94ee39 00000000000000008000000000000000 -0.499990 -> -0.000000 0.000000 -> 0.000000
+r (rm=1) roundpd_1XX 0000000000000000bfdfffd60e94ee39 0000000000000000bff0000000000000 -0.499990 -> -1.000000 0.000000 -> 0.000000
+m (rm=1) roundpd_1XX 0000000000000000bfdfffd60e94ee39 0000000000000000bff0000000000000 -0.499990 -> -1.000000 0.000000 -> 0.000000
+r (rm=2) roundpd_1XX 0000000000000000bfdfffd60e94ee39 00000000000000008000000000000000 -0.499990 -> -0.000000 0.000000 -> 0.000000
+m (rm=2) roundpd_1XX 0000000000000000bfdfffd60e94ee39 00000000000000008000000000000000 -0.499990 -> -0.000000 0.000000 -> 0.000000
+r (rm=3) roundpd_1XX 0000000000000000bfdfffd60e94ee39 00000000000000008000000000000000 -0.499990 -> -0.000000 0.000000 -> 0.000000
+m (rm=3) roundpd_1XX 0000000000000000bfdfffd60e94ee39 00000000000000008000000000000000 -0.499990 -> -0.000000 0.000000 -> 0.000000
+r (rm=0) roundpd_1XX 8000000000000000bfd3333333333333 80000000000000008000000000000000 -0.300000 -> -0.000000 -0.000000 -> -0.000000
+m (rm=0) roundpd_1XX 8000000000000000bfd3333333333333 80000000000000008000000000000000 -0.300000 -> -0.000000 -0.000000 -> -0.000000
+r (rm=1) roundpd_1XX 8000000000000000bfd3333333333333 8000000000000000bff0000000000000 -0.300000 -> -1.000000 -0.000000 -> -0.000000
+m (rm=1) roundpd_1XX 8000000000000000bfd3333333333333 8000000000000000bff0000000000000 -0.300000 -> -1.000000 -0.000000 -> -0.000000
+r (rm=2) roundpd_1XX 8000000000000000bfd3333333333333 80000000000000008000000000000000 -0.300000 -> -0.000000 -0.000000 -> -0.000000
+m (rm=2) roundpd_1XX 8000000000000000bfd3333333333333 80000000000000008000000000000000 -0.300000 -> -0.000000 -0.000000 -> -0.000000
+r (rm=3) roundpd_1XX 8000000000000000bfd3333333333333 80000000000000008000000000000000 -0.300000 -> -0.000000 -0.000000 -> -0.000000
+m (rm=3) roundpd_1XX 8000000000000000bfd3333333333333 80000000000000008000000000000000 -0.300000 -> -0.000000 -0.000000 -> -0.000000
+r (rm=0) roundpd_1XX 7ff0000000000000bfb999999999999a 7ff00000000000008000000000000000 -0.100000 -> -0.000000 inf -> inf
+m (rm=0) roundpd_1XX 7ff0000000000000bfb999999999999a 7ff00000000000008000000000000000 -0.100000 -> -0.000000 inf -> inf
+r (rm=1) roundpd_1XX 7ff0000000000000bfb999999999999a 7ff0000000000000bff0000000000000 -0.100000 -> -1.000000 inf -> inf
+m (rm=1) roundpd_1XX 7ff0000000000000bfb999999999999a 7ff0000000000000bff0000000000000 -0.100000 -> -1.000000 inf -> inf
+r (rm=2) roundpd_1XX 7ff0000000000000bfb999999999999a 7ff00000000000008000000000000000 -0.100000 -> -0.000000 inf -> inf
+m (rm=2) roundpd_1XX 7ff0000000000000bfb999999999999a 7ff00000000000008000000000000000 -0.100000 -> -0.000000 inf -> inf
+r (rm=3) roundpd_1XX 7ff0000000000000bfb999999999999a 7ff00000000000008000000000000000 -0.100000 -> -0.000000 inf -> inf
+m (rm=3) roundpd_1XX 7ff0000000000000bfb999999999999a 7ff00000000000008000000000000000 -0.100000 -> -0.000000 inf -> inf
+r (rm=0) roundpd_1XX fff00000000000003fb999999999999a fff00000000000000000000000000000 0.100000 -> 0.000000 -inf -> -inf
+m (rm=0) roundpd_1XX fff00000000000003fb999999999999a fff00000000000000000000000000000 0.100000 -> 0.000000 -inf -> -inf
+r (rm=1) roundpd_1XX fff00000000000003fb999999999999a fff00000000000000000000000000000 0.100000 -> 0.000000 -inf -> -inf
+m (rm=1) roundpd_1XX fff00000000000003fb999999999999a fff00000000000000000000000000000 0.100000 -> 0.000000 -inf -> -inf
+r (rm=2) roundpd_1XX fff00000000000003fb999999999999a fff00000000000003ff0000000000000 0.100000 -> 1.000000 -inf -> -inf
+m (rm=2) roundpd_1XX fff00000000000003fb999999999999a fff00000000000003ff0000000000000 0.100000 -> 1.000000 -inf -> -inf
+r (rm=3) roundpd_1XX fff00000000000003fb999999999999a fff00000000000000000000000000000 0.100000 -> 0.000000 -inf -> -inf
+m (rm=3) roundpd_1XX fff00000000000003fb999999999999a fff00000000000000000000000000000 0.100000 -> 0.000000 -inf -> -inf
+r (rm=0) roundpd_1XX 7ff80000000000003fd3333333333333 7ff80000000000000000000000000000 0.300000 -> 0.000000 nan -> nan
+m (rm=0) roundpd_1XX 7ff80000000000003fd3333333333333 7ff80000000000000000000000000000 0.300000 -> 0.000000 nan -> nan
+r (rm=1) roundpd_1XX 7ff80000000000003fd3333333333333 7ff80000000000000000000000000000 0.300000 -> 0.000000 nan -> nan
+m (rm=1) roundpd_1XX 7ff80000000000003fd3333333333333 7ff80000000000000000000000000000 0.300000 -> 0.000000 nan -> nan
+r (rm=2) roundpd_1XX 7ff80000000000003fd3333333333333 7ff80000000000003ff0000000000000 0.300000 -> 1.000000 nan -> nan
+m (rm=2) roundpd_1XX 7ff80000000000003fd3333333333333 7ff80000000000003ff0000000000000 0.300000 -> 1.000000 nan -> nan
+r (rm=3) roundpd_1XX 7ff80000000000003fd3333333333333 7ff80000000000000000000000000000 0.300000 -> 0.000000 nan -> nan
+m (rm=3) roundpd_1XX 7ff80000000000003fd3333333333333 7ff80000000000000000000000000000 0.300000 -> 0.000000 nan -> nan
+r (rm=0) roundpd_1XX fff80000000000003fdfffd60e94ee39 fff80000000000000000000000000000 0.499990 -> 0.000000 -nan -> -nan
+m (rm=0) roundpd_1XX fff80000000000003fdfffd60e94ee39 fff80000000000000000000000000000 0.499990 -> 0.000000 -nan -> -nan
+r (rm=1) roundpd_1XX fff80000000000003fdfffd60e94ee39 fff80000000000000000000000000000 0.499990 -> 0.000000 -nan -> -nan
+m (rm=1) roundpd_1XX fff80000000000003fdfffd60e94ee39 fff80000000000000000000000000000 0.499990 -> 0.000000 -nan -> -nan
+r (rm=2) roundpd_1XX fff80000000000003fdfffd60e94ee39 fff80000000000003ff0000000000000 0.499990 -> 1.000000 -nan -> -nan
+m (rm=2) roundpd_1XX fff80000000000003fdfffd60e94ee39 fff80000000000003ff0000000000000 0.499990 -> 1.000000 -nan -> -nan
+r (rm=3) roundpd_1XX fff80000000000003fdfffd60e94ee39 fff80000000000000000000000000000 0.499990 -> 0.000000 -nan -> -nan
+m (rm=3) roundpd_1XX fff80000000000003fdfffd60e94ee39 fff80000000000000000000000000000 0.499990 -> 0.000000 -nan -> -nan
+r (rm=0) roundpd_1XX bff4cccccccccccd3fe00014f8b588e3 bff00000000000003ff0000000000000 0.500010 -> 1.000000 -1.300000 -> -1.000000
+m (rm=0) roundpd_1XX bff4cccccccccccd3fe00014f8b588e3 bff00000000000003ff0000000000000 0.500010 -> 1.000000 -1.300000 -> -1.000000
+r (rm=1) roundpd_1XX bff4cccccccccccd3fe00014f8b588e3 c0000000000000000000000000000000 0.500010 -> 0.000000 -1.300000 -> -2.000000
+m (rm=1) roundpd_1XX bff4cccccccccccd3fe00014f8b588e3 c0000000000000000000000000000000 0.500010 -> 0.000000 -1.300000 -> -2.000000
+r (rm=2) roundpd_1XX bff4cccccccccccd3fe00014f8b588e3 bff00000000000003ff0000000000000 0.500010 -> 1.000000 -1.300000 -> -1.000000
+m (rm=2) roundpd_1XX bff4cccccccccccd3fe00014f8b588e3 bff00000000000003ff0000000000000 0.500010 -> 1.000000 -1.300000 -> -1.000000
+r (rm=3) roundpd_1XX bff4cccccccccccd3fe00014f8b588e3 bff00000000000000000000000000000 0.500010 -> 0.000000 -1.300000 -> -1.000000
+m (rm=3) roundpd_1XX bff4cccccccccccd3fe00014f8b588e3 bff00000000000000000000000000000 0.500010 -> 0.000000 -1.300000 -> -1.000000
+r (rm=0) roundpd_1XX bff199999999999a3fe6666666666666 bff00000000000003ff0000000000000 0.700000 -> 1.000000 -1.100000 -> -1.000000
+m (rm=0) roundpd_1XX bff199999999999a3fe6666666666666 bff00000000000003ff0000000000000 0.700000 -> 1.000000 -1.100000 -> -1.000000
+r (rm=1) roundpd_1XX bff199999999999a3fe6666666666666 c0000000000000000000000000000000 0.700000 -> 0.000000 -1.100000 -> -2.000000
+m (rm=1) roundpd_1XX bff199999999999a3fe6666666666666 c0000000000000000000000000000000 0.700000 -> 0.000000 -1.100000 -> -2.000000
+r (rm=2) roundpd_1XX bff199999999999a3fe6666666666666 bff00000000000003ff0000000000000 0.700000 -> 1.000000 -1.100000 -> -1.000000
+m (rm=2) roundpd_1XX bff199999999999a3fe6666666666666 bff00000000000003ff0000000000000 0.700000 -> 1.000000 -1.100000 -> -1.000000
+r (rm=3) roundpd_1XX bff199999999999a3fe6666666666666 bff00000000000000000000000000000 0.700000 -> 0.000000 -1.100000 -> -1.000000
+m (rm=3) roundpd_1XX bff199999999999a3fe6666666666666 bff00000000000000000000000000000 0.700000 -> 0.000000 -1.100000 -> -1.000000
+r (rm=0) roundpd_1XX bfeccccccccccccd3feccccccccccccd bff00000000000003ff0000000000000 0.900000 -> 1.000000 -0.900000 -> -1.000000
+m (rm=0) roundpd_1XX bfeccccccccccccd3feccccccccccccd bff00000000000003ff0000000000000 0.900000 -> 1.000000 -0.900000 -> -1.000000
+r (rm=1) roundpd_1XX bfeccccccccccccd3feccccccccccccd bff00000000000000000000000000000 0.900000 -> 0.000000 -0.900000 -> -1.000000
+m (rm=1) roundpd_1XX bfeccccccccccccd3feccccccccccccd bff00000000000000000000000000000 0.900000 -> 0.000000 -0.900000 -> -1.000000
+r (rm=2) roundpd_1XX bfeccccccccccccd3feccccccccccccd 80000000000000003ff0000000000000 0.900000 -> 1.000000 -0.900000 -> -0.000000
+m (rm=2) roundpd_1XX bfeccccccccccccd3feccccccccccccd 80000000000000003ff0000000000000 0.900000 -> 1.000000 -0.900000 -> -0.000000
+r (rm=3) roundpd_1XX bfeccccccccccccd3feccccccccccccd 80000000000000000000000000000000 0.900000 -> 0.000000 -0.900000 -> -0.000000
+m (rm=3) roundpd_1XX bfeccccccccccccd3feccccccccccccd 80000000000000000000000000000000 0.900000 -> 0.000000 -0.900000 -> -0.000000
+r (rm=0) roundpd_1XX bfe66666666666663ff199999999999a bff00000000000003ff0000000000000 1.100000 -> 1.000000 -0.700000 -> -1.000000
+m (rm=0) roundpd_1XX bfe66666666666663ff199999999999a bff00000000000003ff0000000000000 1.100000 -> 1.000000 -0.700000 -> -1.000000
+r (rm=1) roundpd_1XX bfe66666666666663ff199999999999a bff00000000000003ff0000000000000 1.100000 -> 1.000000 -0.700000 -> -1.000000
+m (rm=1) roundpd_1XX bfe66666666666663ff199999999999a bff00000000000003ff0000000000000 1.100000 -> 1.000000 -0.700000 -> -1.000000
+r (rm=2) roundpd_1XX bfe66666666666663ff199999999999a 80000000000000004000000000000000 1.100000 -> 2.000000 -0.700000 -> -0.000000
+m (rm=2) roundpd_1XX bfe66666666666663ff199999999999a 80000000000000004000000000000000 1.100000 -> 2.000000 -0.700000 -> -0.000000
+r (rm=3) roundpd_1XX bfe66666666666663ff199999999999a 80000000000000003ff0000000000000 1.100000 -> 1.000000 -0.700000 -> -0.000000
+m (rm=3) roundpd_1XX bfe66666666666663ff199999999999a 80000000000000003ff0000000000000 1.100000 -> 1.000000 -0.700000 -> -0.000000
+r (rm=0) roundpd_1XX bfe00014f8b588e33ff4cccccccccccd bff00000000000003ff0000000000000 1.300000 -> 1.000000 -0.500010 -> -1.000000
+m (rm=0) roundpd_1XX bfe00014f8b588e33ff4cccccccccccd bff00000000000003ff0000000000000 1.300000 -> 1.000000 -0.500010 -> -1.000000
+r (rm=1) roundpd_1XX bfe00014f8b588e33ff4cccccccccccd bff00000000000003ff0000000000000 1.300000 -> 1.000000 -0.500010 -> -1.000000
+m (rm=1) roundpd_1XX bfe00014f8b588e33ff4cccccccccccd bff00000000000003ff0000000000000 1.300000 -> 1.000000 -0.500010 -> -1.000000
+r (rm=2) roundpd_1XX bfe00014f8b588e33ff4cccccccccccd 80000000000000004000000000000000 1.300000 -> 2.000000 -0.500010 -> -0.000000
+m (rm=2) roundpd_1XX bfe00014f8b588e33ff4cccccccccccd 80000000000000004000000000000000 1.300000 -> 2.000000 -0.500010 -> -0.000000
+r (rm=3) roundpd_1XX bfe00014f8b588e33ff4cccccccccccd 80000000000000003ff0000000000000 1.300000 -> 1.000000 -0.500010 -> -0.000000
+m (rm=3) roundpd_1XX bfe00014f8b588e33ff4cccccccccccd 80000000000000003ff0000000000000 1.300000 -> 1.000000 -0.500010 -> -0.000000
+r (rm=0) roundps_1XX 3f0000a8befffeb0ffc0000000000000 3f80000080000000ffc0000000000000 0.000000: 0.000000 -nan: -nan -0.499990:-0.000000 0.500010: 1.000000
+m (rm=0) roundps_1XX 3f0000a8befffeb0ffc0000000000000 3f80000080000000ffc0000000000000 0.000000: 0.000000 -nan: -nan -0.499990:-0.000000 0.500010: 1.000000
+r (rm=1) roundps_1XX 3f0000a8befffeb0ffc0000000000000 00000000bf800000ffc0000000000000 0.000000: 0.000000 -nan: -nan -0.499990:-1.000000 0.500010: 0.000000
+m (rm=1) roundps_1XX 3f0000a8befffeb0ffc0000000000000 00000000bf800000ffc0000000000000 0.000000: 0.000000 -nan: -nan -0.499990:-1.000000 0.500010: 0.000000
+r (rm=2) roundps_1XX 3f0000a8befffeb0ffc0000000000000 3f80000080000000ffc0000000000000 0.000000: 0.000000 -nan: -nan -0.499990:-0.000000 0.500010: 1.000000
+m (rm=2) roundps_1XX 3f0000a8befffeb0ffc0000000000000 3f80000080000000ffc0000000000000 0.000000: 0.000000 -nan: -nan -0.499990:-0.000000 0.500010: 1.000000
+r (rm=3) roundps_1XX 3f0000a8befffeb0ffc0000000000000 0000000080000000ffc0000000000000 0.000000: 0.000000 -nan: -nan -0.499990:-0.000000 0.500010: 0.000000
+m (rm=3) roundps_1XX 3f0000a8befffeb0ffc0000000000000 0000000080000000ffc0000000000000 0.000000: 0.000000 -nan: -nan -0.499990:-0.000000 0.500010: 0.000000
+r (rm=0) roundps_1XX 3f333333be99999abfa6666680000000 3f80000080000000bf80000080000000 -0.000000:-0.000000 -1.300000:-1.000000 -0.300000:-0.000000 0.700000: 1.000000
+m (rm=0) roundps_1XX 3f333333be99999abfa6666680000000 3f80000080000000bf80000080000000 -0.000000:-0.000000 -1.300000:-1.000000 -0.300000:-0.000000 0.700000: 1.000000
+r (rm=1) roundps_1XX 3f333333be99999abfa6666680000000 00000000bf800000c000000080000000 -0.000000:-0.000000 -1.300000:-2.000000 -0.300000:-1.000000 0.700000: 0.000000
+m (rm=1) roundps_1XX 3f333333be99999abfa6666680000000 00000000bf800000c000000080000000 -0.000000:-0.000000 -1.300000:-2.000000 -0.300000:-1.000000 0.700000: 0.000000
+r (rm=2) roundps_1XX 3f333333be99999abfa6666680000000 3f80000080000000bf80000080000000 -0.000000:-0.000000 -1.300000:-1.000000 -0.300000:-0.000000 0.700000: 1.000000
+m (rm=2) roundps_1XX 3f333333be99999abfa6666680000000 3f80000080000000bf80000080000000 -0.000000:-0.000000 -1.300000:-1.000000 -0.300000:-0.000000 0.700000: 1.000000
+r (rm=3) roundps_1XX 3f333333be99999abfa6666680000000 0000000080000000bf80000080000000 -0.000000:-0.000000 -1.300000:-1.000000 -0.300000:-0.000000 0.700000: 0.000000
+m (rm=3) roundps_1XX 3f333333be99999abfa6666680000000 0000000080000000bf80000080000000 -0.000000:-0.000000 -1.300000:-1.000000 -0.300000:-0.000000 0.700000: 0.000000
+r (rm=0) roundps_1XX 3f666666bdcccccdbf8ccccd7f800000 3f80000080000000bf8000007f800000 inf: inf -1.100000:-1.000000 -0.100000:-0.000000 0.900000: 1.000000
+m (rm=0) roundps_1XX 3f666666bdcccccdbf8ccccd7f800000 3f80000080000000bf8000007f800000 inf: inf -1.100000:-1.000000 -0.100000:-0.000000 0.900000: 1.000000
+r (rm=1) roundps_1XX 3f666666bdcccccdbf8ccccd7f800000 00000000bf800000c00000007f800000 inf: inf -1.100000:-2.000000 -0.100000:-1.000000 0.900000: 0.000000
+m (rm=1) roundps_1XX 3f666666bdcccccdbf8ccccd7f800000 00000000bf800000c00000007f800000 inf: inf -1.100000:-2.000000 -0.100000:-1.000000 0.900000: 0.000000
+r (rm=2) roundps_1XX 3f666666bdcccccdbf8ccccd7f800000 3f80000080000000bf8000007f800000 inf: inf -1.100000:-1.000000 -0.100000:-0.000000 0.900000: 1.000000
+m (rm=2) roundps_1XX 3f666666bdcccccdbf8ccccd7f800000 3f80000080000000bf8000007f800000 inf: inf -1.100000:-1.000000 -0.100000:-0.000000 0.900000: 1.000000
+r (rm=3) roundps_1XX 3f666666bdcccccdbf8ccccd7f800000 0000000080000000bf8000007f800000 inf: inf -1.100000:-1.000000 -0.100000:-0.000000 0.900000: 0.000000
+m (rm=3) roundps_1XX 3f666666bdcccccdbf8ccccd7f800000 0000000080000000bf8000007f800000 inf: inf -1.100000:-1.000000 -0.100000:-0.000000 0.900000: 0.000000
+r (rm=0) roundps_1XX 3f8ccccd3dcccccdbf666666ff800000 3f80000000000000bf800000ff800000 -inf: -inf -0.900000:-1.000000 0.100000: 0.000000 1.100000: 1.000000
+m (rm=0) roundps_1XX 3f8ccccd3dcccccdbf666666ff800000 3f80000000000000bf800000ff800000 -inf: -inf -0.900000:-1.000000 0.100000: 0.000000 1.100000: 1.000000
+r (rm=1) roundps_1XX 3f8ccccd3dcccccdbf666666ff800000 3f80000000000000bf800000ff800000 -inf: -inf -0.900000:-1.000000 0.100000: 0.000000 1.100000: 1.000000
+m (rm=1) roundps_1XX 3f8ccccd3dcccccdbf666666ff800000 3f80000000000000bf800000ff800000 -inf: -inf -0.900000:-1.000000 0.100000: 0.000000 1.100000: 1.000000
+r (rm=2) roundps_1XX 3f8ccccd3dcccccdbf666666ff800000 400000003f80000080000000ff800000 -inf: -inf -0.900000:-0.000000 0.100000: 1.000000 1.100000: 2.000000
+m (rm=2) roundps_1XX 3f8ccccd3dcccccdbf666666ff800000 400000003f80000080000000ff800000 -inf: -inf -0.900000:-0.000000 0.100000: 1.000000 1.100000: 2.000000
+r (rm=3) roundps_1XX 3f8ccccd3dcccccdbf666666ff800000 3f8000000000000080000000ff800000 -inf: -inf -0.900000:-0.000000 0.100000: 0.000000 1.100000: 1.000000
+m (rm=3) roundps_1XX 3f8ccccd3dcccccdbf666666ff800000 3f8000000000000080000000ff800000 -inf: -inf -0.900000:-0.000000 0.100000: 0.000000 1.100000: 1.000000
+r (rm=0) roundps_1XX 3fa666663e99999abf3333337fc00000 3f80000000000000bf8000007fc00000 nan: nan -0.700000:-1.000000 0.300000: 0.000000 1.300000: 1.000000
+m (rm=0) roundps_1XX 3fa666663e99999abf3333337fc00000 3f80000000000000bf8000007fc00000 nan: nan -0.700000:-1.000000 0.300000: 0.000000 1.300000: 1.000000
+r (rm=1) roundps_1XX 3fa666663e99999abf3333337fc00000 3f80000000000000bf8000007fc00000 nan: nan -0.700000:-1.000000 0.300000: 0.000000 1.300000: 1.000000
+m (rm=1) roundps_1XX 3fa666663e99999abf3333337fc00000 3f80000000000000bf8000007fc00000 nan: nan -0.700000:-1.000000 0.300000: 0.000000 1.300000: 1.000000
+r (rm=2) roundps_1XX 3fa666663e99999abf3333337fc00000 400000003f800000800000007fc00000 nan: nan -0.700000:-0.000000 0.300000: 1.000000 1.300000: 2.000000
+m (rm=2) roundps_1XX 3fa666663e99999abf3333337fc00000 400000003f800000800000007fc00000 nan: nan -0.700000:-0.000000 0.300000: 1.000000 1.300000: 2.000000
+r (rm=3) roundps_1XX 3fa666663e99999abf3333337fc00000 3f80000000000000800000007fc00000 nan: nan -0.700000:-0.000000 0.300000: 0.000000 1.300000: 1.000000
+m (rm=3) roundps_1XX 3fa666663e99999abf3333337fc00000 3f80000000000000800000007fc00000 nan: nan -0.700000:-0.000000 0.300000: 0.000000 1.300000: 1.000000
+r (rm=0) roundps_1XX 000000003efffeb0bf0000a8ffc00000 0000000000000000bf800000ffc00000 -nan: -nan -0.500010:-1.000000 0.499990: 0.000000 0.000000: 0.000000
+m (rm=0) roundps_1XX 000000003efffeb0bf0000a8ffc00000 0000000000000000bf800000ffc00000 -nan: -nan -0.500010:-1.000000 0.499990: 0.000000 0.000000: 0.000000
+r (rm=1) roundps_1XX 000000003efffeb0bf0000a8ffc00000 0000000000000000bf800000ffc00000 -nan: -nan -0.500010:-1.000000 0.499990: 0.000000 0.000000: 0.000000
+m (rm=1) roundps_1XX 000000003efffeb0bf0000a8ffc00000 0000000000000000bf800000ffc00000 -nan: -nan -0.500010:-1.000000 0.499990: 0.000000 0.000000: 0.000000
+r (rm=2) roundps_1XX 000000003efffeb0bf0000a8ffc00000 000000003f80000080000000ffc00000 -nan: -nan -0.500010:-0.000000 0.499990: 1.000000 0.000000: 0.000000
+m (rm=2) roundps_1XX 000000003efffeb0bf0000a8ffc00000 000000003f80000080000000ffc00000 -nan: -nan -0.500010:-0.000000 0.499990: 1.000000 0.000000: 0.000000
+r (rm=3) roundps_1XX 000000003efffeb0bf0000a8ffc00000 000000000000000080000000ffc00000 -nan: -nan -0.500010:-0.000000 0.499990: 0.000000 0.000000: 0.000000
+m (rm=3) roundps_1XX 000000003efffeb0bf0000a8ffc00000 000000000000000080000000ffc00000 -nan: -nan -0.500010:-0.000000 0.499990: 0.000000 0.000000: 0.000000
+r (rm=0) roundps_1XX 800000003f0000a8befffeb0bfa66666 800000003f80000080000000bf800000 -1.300000:-1.000000 -0.499990:-0.000000 0.500010: 1.000000 -0.000000:-0.000000
+m (rm=0) roundps_1XX 800000003f0000a8befffeb0bfa66666 800000003f80000080000000bf800000 -1.300000:-1.000000 -0.499990:-0.000000 0.500010: 1.000000 -0.000000:-0.000000
+r (rm=1) roundps_1XX 800000003f0000a8befffeb0bfa66666 8000000000000000bf800000c0000000 -1.300000:-2.000000 -0.499990:-1.000000 0.500010: 0.000000 -0.000000:-0.000000
+m (rm=1) roundps_1XX 800000003f0000a8befffeb0bfa66666 8000000000000000bf800000c0000000 -1.300000:-2.000000 -0.499990:-1.000000 0.500010: 0.000000 -0.000000:-0.000000
+r (rm=2) roundps_1XX 800000003f0000a8befffeb0bfa66666 800000003f80000080000000bf800000 -1.300000:-1.000000 -0.499990:-0.000000 0.500010: 1.000000 -0.000000:-0.000000
+m (rm=2) roundps_1XX 800000003f0000a8befffeb0bfa66666 800000003f80000080000000bf800000 -1.300000:-1.000000 -0.499990:-0.000000 0.500010: 1.000000 -0.000000:-0.000000
+r (rm=3) roundps_1XX 800000003f0000a8befffeb0bfa66666 800000000000000080000000bf800000 -1.300000:-1.000000 -0.499990:-0.000000 0.500010: 0.000000 -0.000000:-0.000000
+m (rm=3) roundps_1XX 800000003f0000a8befffeb0bfa66666 800000000000000080000000bf800000 -1.300000:-1.000000 -0.499990:-0.000000 0.500010: 0.000000 -0.000000:-0.000000
+r (rm=0) roundps_1XX 7f8000003f333333be99999abf8ccccd 7f8000003f80000080000000bf800000 -1.100000:-1.000000 -0.300000:-0.000000 0.700000: 1.000000 inf: inf
+m (rm=0) roundps_1XX 7f8000003f333333be99999abf8ccccd 7f8000003f80000080000000bf800000 -1.100000:-1.000000 -0.300000:-0.000000 0.700000: 1.000000 inf: inf
+r (rm=1) roundps_1XX 7f8000003f333333be99999abf8ccccd 7f80000000000000bf800000c0000000 -1.100000:-2.000000 -0.300000:-1.000000 0.700000: 0.000000 inf: inf
+m (rm=1) roundps_1XX 7f8000003f333333be99999abf8ccccd 7f80000000000000bf800000c0000000 -1.100000:-2.000000 -0.300000:-1.000000 0.700000: 0.000000 inf: inf
+r (rm=2) roundps_1XX 7f8000003f333333be99999abf8ccccd 7f8000003f80000080000000bf800000 -1.100000:-1.000000 -0.300000:-0.000000 0.700000: 1.000000 inf: inf
+m (rm=2) roundps_1XX 7f8000003f333333be99999abf8ccccd 7f8000003f80000080000000bf800000 -1.100000:-1.000000 -0.300000:-0.000000 0.700000: 1.000000 inf: inf
+r (rm=3) roundps_1XX 7f8000003f333333be99999abf8ccccd 7f8000000000000080000000bf800000 -1.100000:-1.000000 -0.300000:-0.000000 0.700000: 0.000000 inf: inf
+m (rm=3) roundps_1XX 7f8000003f333333be99999abf8ccccd 7f8000000000000080000000bf800000 -1.100000:-1.000000 -0.300000:-0.000000 0.700000: 0.000000 inf: inf
+r (rm=0) roundps_1XX ff8000003f666666bdcccccdbf666666 ff8000003f80000080000000bf800000 -0.900000:-1.000000 -0.100000:-0.000000 0.900000: 1.000000 -inf: -inf
+m (rm=0) roundps_1XX ff8000003f666666bdcccccdbf666666 ff8000003f80000080000000bf800000 -0.900000:-1.000000 -0.100000:-0.000000 0.900000: 1.000000 -inf: -inf
+r (rm=1) roundps_1XX ff8000003f666666bdcccccdbf666666 ff80000000000000bf800000bf800000 -0.900000:-1.000000 -0.100000:-1.000000 0.900000: 0.000000 -inf: -inf
+m (rm=1) roundps_1XX ff8000003f666666bdcccccdbf666666 ff80000000000000bf800000bf800000 -0.900000:-1.000000 -0.100000:-1.000000 0.900000: 0.000000 -inf: -inf
+r (rm=2) roundps_1XX ff8000003f666666bdcccccdbf666666 ff8000003f8000008000000080000000 -0.900000:-0.000000 -0.100000:-0.000000 0.900000: 1.000000 -inf: -inf
+m (rm=2) roundps_1XX ff8000003f666666bdcccccdbf666666 ff8000003f8000008000000080000000 -0.900000:-0.000000 -0.100000:-0.000000 0.900000: 1.000000 -inf: -inf
+r (rm=3) roundps_1XX ff8000003f666666bdcccccdbf666666 ff800000000000008000000080000000 -0.900000:-0.000000 -0.100000:-0.000000 0.900000: 0.000000 -inf: -inf
+m (rm=3) roundps_1XX ff8000003f666666bdcccccdbf666666 ff800000000000008000000080000000 -0.900000:-0.000000 -0.100000:-0.000000 0.900000: 0.000000 -inf: -inf
+r (rm=0) roundps_1XX 7fc000003f8ccccd3dcccccdbf333333 7fc000003f80000000000000bf800000 -0.700000:-1.000000 0.100000: 0.000000 1.100000: 1.000000 nan: nan
+m (rm=0) roundps_1XX 7fc000003f8ccccd3dcccccdbf333333 7fc000003f80000000000000bf800000 -0.700000:-1.000000 0.100000: 0.000000 1.100000: 1.000000 nan: nan
+r (rm=1) roundps_1XX 7fc000003f8ccccd3dcccccdbf333333 7fc000003f80000000000000bf800000 -0.700000:-1.000000 0.100000: 0.000000 1.100000: 1.000000 nan: nan
+m (rm=1) roundps_1XX 7fc000003f8ccccd3dcccccdbf333333 7fc000003f80000000000000bf800000 -0.700000:-1.000000 0.100000: 0.000000 1.100000: 1.000000 nan: nan
+r (rm=2) roundps_1XX 7fc000003f8ccccd3dcccccdbf333333 7fc00000400000003f80000080000000 -0.700000:-0.000000 0.100000: 1.000000 1.100000: 2.000000 nan: nan
+m (rm=2) roundps_1XX 7fc000003f8ccccd3dcccccdbf333333 7fc00000400000003f80000080000000 -0.700000:-0.000000 0.100000: 1.000000 1.100000: 2.000000 nan: nan
+r (rm=3) roundps_1XX 7fc000003f8ccccd3dcccccdbf333333 7fc000003f8000000000000080000000 -0.700000:-0.000000 0.100000: 0.000000 1.100000: 1.000000 nan: nan
+m (rm=3) roundps_1XX 7fc000003f8ccccd3dcccccdbf333333 7fc000003f8000000000000080000000 -0.700000:-0.000000 0.100000: 0.000000 1.100000: 1.000000 nan: nan
+r (rm=0) roundps_1XX ffc000003fa666663e99999abf0000a8 ffc000003f80000000000000bf800000 -0.500010:-1.000000 0.300000: 0.000000 1.300000: 1.000000 -nan: -nan
+m (rm=0) roundps_1XX ffc000003fa666663e99999abf0000a8 ffc000003f80000000000000bf800000 -0.500010:-1.000000 0.300000: 0.000000 1.300000: 1.000000 -nan: -nan
+r (rm=1) roundps_1XX ffc000003fa666663e99999abf0000a8 ffc000003f80000000000000bf800000 -0.500010:-1.000000 0.300000: 0.000000 1.300000: 1.000000 -nan: -nan
+m (rm=1) roundps_1XX ffc000003fa666663e99999abf0000a8 ffc000003f80000000000000bf800000 -0.500010:-1.000000 0.300000: 0.000000 1.300000: 1.000000 -nan: -nan
+r (rm=2) roundps_1XX ffc000003fa666663e99999abf0000a8 ffc00000400000003f80000080000000 -0.500010:-0.000000 0.300000: 1.000000 1.300000: 2.000000 -nan: -nan
+m (rm=2) roundps_1XX ffc000003fa666663e99999abf0000a8 ffc00000400000003f80000080000000 -0.500010:-0.000000 0.300000: 1.000000 1.300000: 2.000000 -nan: -nan
+r (rm=3) roundps_1XX ffc000003fa666663e99999abf0000a8 ffc000003f8000000000000080000000 -0.500010:-0.000000 0.300000: 0.000000 1.300000: 1.000000 -nan: -nan
+m (rm=3) roundps_1XX ffc000003fa666663e99999abf0000a8 ffc000003f8000000000000080000000 -0.500010:-0.000000 0.300000: 0.000000 1.300000: 1.000000 -nan: -nan
+r (rm=0) roundps_1XX bfa66666000000003efffeb0befffeb0 bf800000000000000000000080000000 -0.499990:-0.000000 0.499990: 0.000000 0.000000: 0.000000 -1.300000:-1.000000
+m (rm=0) roundps_1XX bfa66666000000003efffeb0befffeb0 bf800000000000000000000080000000 -0.499990:-0.000000 0.499990: 0.000000 0.000000: 0.000000 -1.300000:-1.000000
+r (rm=1) roundps_1XX bfa66666000000003efffeb0befffeb0 c00000000000000000000000bf800000 -0.499990:-1.000000 0.499990: 0.000000 0.000000: 0.000000 -1.300000:-2.000000
+m (rm=1) roundps_1XX bfa66666000000003efffeb0befffeb0 c00000000000000000000000bf800000 -0.499990:-1.000000 0.499990: 0.000000 0.000000: 0.000000 -1.300000:-2.000000
+r (rm=2) roundps_1XX bfa66666000000003efffeb0befffeb0 bf800000000000003f80000080000000 -0.499990:-0.000000 0.499990: 1.000000 0.000000: 0.000000 -1.300000:-1.000000
+m (rm=2) roundps_1XX bfa66666000000003efffeb0befffeb0 bf800000000000003f80000080000000 -0.499990:-0.000000 0.499990: 1.000000 0.000000: 0.000000 -1.300000:-1.000000
+r (rm=3) roundps_1XX bfa66666000000003efffeb0befffeb0 bf800000000000000000000080000000 -0.499990:-0.000000 0.499990: 0.000000 0.000000: 0.000000 -1.300000:-1.000000
+m (rm=3) roundps_1XX bfa66666000000003efffeb0befffeb0 bf800000000000000000000080000000 -0.499990:-0.000000 0.499990: 0.000000 0.000000: 0.000000 -1.300000:-1.000000
+r (rm=0) roundps_1XX bf8ccccd800000003f0000a8be99999a bf800000800000003f80000080000000 -0.300000:-0.000000 0.500010: 1.000000 -0.000000:-0.000000 -1.100000:-1.000000
+m (rm=0) roundps_1XX bf8ccccd800000003f0000a8be99999a bf800000800000003f80000080000000 -0.300000:-0.000000 0.500010: 1.000000 -0.000000:-0.000000 -1.100000:-1.000000
+r (rm=1) roundps_1XX bf8ccccd800000003f0000a8be99999a c00000008000000000000000bf800000 -0.300000:-1.000000 0.500010: 0.000000 -0.000000:-0.000000 -1.100000:-2.000000
+m (rm=1) roundps_1XX bf8ccccd800000003f0000a8be99999a c00000008000000000000000bf800000 -0.300000:-1.000000 0.500010: 0.000000 -0.000000:-0.000000 -1.100000:-2.000000
+r (rm=2) roundps_1XX bf8ccccd800000003f0000a8be99999a bf800000800000003f80000080000000 -0.300000:-0.000000 0.500010: 1.000000 -0.000000:-0.000000 -1.100000:-1.000000
+m (rm=2) roundps_1XX bf8ccccd800000003f0000a8be99999a bf800000800000003f80000080000000 -0.300000:-0.000000 0.500010: 1.000000 -0.000000:-0.000000 -1.100000:-1.000000
+r (rm=3) roundps_1XX bf8ccccd800000003f0000a8be99999a bf800000800000000000000080000000 -0.300000:-0.000000 0.500010: 0.000000 -0.000000:-0.000000 -1.100000:-1.000000
+m (rm=3) roundps_1XX bf8ccccd800000003f0000a8be99999a bf800000800000000000000080000000 -0.300000:-0.000000 0.500010: 0.000000 -0.000000:-0.000000 -1.100000:-1.000000
+r (rm=0) roundps_1XX bf6666667f8000003f333333bdcccccd bf8000007f8000003f80000080000000 -0.100000:-0.000000 0.700000: 1.000000 inf: inf -0.900000:-1.000000
+m (rm=0) roundps_1XX bf6666667f8000003f333333bdcccccd bf8000007f8000003f80000080000000 -0.100000:-0.000000 0.700000: 1.000000 inf: inf -0.900000:-1.000000
+r (rm=1) roundps_1XX bf6666667f8000003f333333bdcccccd bf8000007f80000000000000bf800000 -0.100000:-1.000000 0.700000: 0.000000 inf: inf -0.900000:-1.000000
+m (rm=1) roundps_1XX bf6666667f8000003f333333bdcccccd bf8000007f80000000000000bf800000 -0.100000:-1.000000 0.700000: 0.000000 inf: inf -0.900000:-1.000000
+r (rm=2) roundps_1XX bf6666667f8000003f333333bdcccccd 800000007f8000003f80000080000000 -0.100000:-0.000000 0.700000: 1.000000 inf: inf -0.900000:-0.000000
+m (rm=2) roundps_1XX bf6666667f8000003f333333bdcccccd 800000007f8000003f80000080000000 -0.100000:-0.000000 0.700000: 1.000000 inf: inf -0.900000:-0.000000
+r (rm=3) roundps_1XX bf6666667f8000003f333333bdcccccd 800000007f8000000000000080000000 -0.100000:-0.000000 0.700000: 0.000000 inf: inf -0.900000:-0.000000
+m (rm=3) roundps_1XX bf6666667f8000003f333333bdcccccd 800000007f8000000000000080000000 -0.100000:-0.000000 0.700000: 0.000000 inf: inf -0.900000:-0.000000
+r (rm=0) roundps_1XX bf333333ff8000003f6666663dcccccd bf800000ff8000003f80000000000000 0.100000: 0.000000 0.900000: 1.000000 -inf: -inf -0.700000:-1.000000
+m (rm=0) roundps_1XX bf333333ff8000003f6666663dcccccd bf800000ff8000003f80000000000000 0.100000: 0.000000 0.900000: 1.000000 -inf: -inf -0.700000:-1.000000
+r (rm=1) roundps_1XX bf333333ff8000003f6666663dcccccd bf800000ff8000000000000000000000 0.100000: 0.000000 0.900000: 0.000000 -inf: -inf -0.700000:-1.000000
+m (rm=1) roundps_1XX bf333333ff8000003f6666663dcccccd bf800000ff8000000000000000000000 0.100000: 0.000000 0.900000: 0.000000 -inf: -inf -0.700000:-1.000000
+r (rm=2) roundps_1XX bf333333ff8000003f6666663dcccccd 80000000ff8000003f8000003f800000 0.100000: 1.000000 0.900000: 1.000000 -inf: -inf -0.700000:-0.000000
+m (rm=2) roundps_1XX bf333333ff8000003f6666663dcccccd 80000000ff8000003f8000003f800000 0.100000: 1.000000 0.900000: 1.000000 -inf: -inf -0.700000:-0.000000
+r (rm=3) roundps_1XX bf333333ff8000003f6666663dcccccd 80000000ff8000000000000000000000 0.100000: 0.000000 0.900000: 0.000000 -inf: -inf -0.700000:-0.000000
+m (rm=3) roundps_1XX bf333333ff8000003f6666663dcccccd 80000000ff8000000000000000000000 0.100000: 0.000000 0.900000: 0.000000 -inf: -inf -0.700000:-0.000000
+r (rm=0) roundps_1XX bf0000a87fc000003f8ccccd3e99999a bf8000007fc000003f80000000000000 0.300000: 0.000000 1.100000: 1.000000 nan: nan -0.500010:-1.000000
+m (rm=0) roundps_1XX bf0000a87fc000003f8ccccd3e99999a bf8000007fc000003f80000000000000 0.300000: 0.000000 1.100000: 1.000000 nan: nan -0.500010:-1.000000
+r (rm=1) roundps_1XX bf0000a87fc000003f8ccccd3e99999a bf8000007fc000003f80000000000000 0.300000: 0.000000 1.100000: 1.000000 nan: nan -0.500010:-1.000000
+m (rm=1) roundps_1XX bf0000a87fc000003f8ccccd3e99999a bf8000007fc000003f80000000000000 0.300000: 0.000000 1.100000: 1.000000 nan: nan -0.500010:-1.000000
+r (rm=2) roundps_1XX bf0000a87fc000003f8ccccd3e99999a 800000007fc00000400000003f800000 0.300000: 1.000000 1.100000: 2.000000 nan: nan -0.500010:-0.000000
+m (rm=2) roundps_1XX bf0000a87fc000003f8ccccd3e99999a 800000007fc00000400000003f800000 0.300000: 1.000000 1.100000: 2.000000 nan: nan -0.500010:-0.000000
+r (rm=3) roundps_1XX bf0000a87fc000003f8ccccd3e99999a 800000007fc000003f80000000000000 0.300000: 0.000000 1.100000: 1.000000 nan: nan -0.500010:-0.000000
+m (rm=3) roundps_1XX bf0000a87fc000003f8ccccd3e99999a 800000007fc000003f80000000000000 0.300000: 0.000000 1.100000: 1.000000 nan: nan -0.500010:-0.000000
+r (rm=0) roundps_1XX befffeb0ffc000003fa666663efffeb0 80000000ffc000003f80000000000000 0.499990: 0.000000 1.300000: 1.000000 -nan: -nan -0.499990:-0.000000
+m (rm=0) roundps_1XX befffeb0ffc000003fa666663efffeb0 80000000ffc000003f80000000000000 0.499990: 0.000000 1.300000: 1.000000 -nan: -nan -0.499990:-0.000000
+r (rm=1) roundps_1XX befffeb0ffc000003fa666663efffeb0 bf800000ffc000003f80000000000000 0.499990: 0.000000 1.300000: 1.000000 -nan: -nan -0.499990:-1.000000
+m (rm=1) roundps_1XX befffeb0ffc000003fa666663efffeb0 bf800000ffc000003f80000000000000 0.499990: 0.000000 1.300000: 1.000000 -nan: -nan -0.499990:-1.000000
+r (rm=2) roundps_1XX befffeb0ffc000003fa666663efffeb0 80000000ffc00000400000003f800000 0.499990: 1.000000 1.300000: 2.000000 -nan: -nan -0.499990:-0.000000
+m (rm=2) roundps_1XX befffeb0ffc000003fa666663efffeb0 80000000ffc00000400000003f800000 0.499990: 1.000000 1.300000: 2.000000 -nan: -nan -0.499990:-0.000000
+r (rm=3) roundps_1XX befffeb0ffc000003fa666663efffeb0 80000000ffc000003f80000000000000 0.499990: 0.000000 1.300000: 1.000000 -nan: -nan -0.499990:-0.000000
+m (rm=3) roundps_1XX befffeb0ffc000003fa666663efffeb0 80000000ffc000003f80000000000000 0.499990: 0.000000 1.300000: 1.000000 -nan: -nan -0.499990:-0.000000
+r (rm=0) roundps_1XX be99999abfa66666000000003f0000a8 80000000bf800000000000003f800000 0.500010: 1.000000 0.000000: 0.000000 -1.300000:-1.000000 -0.300000:-0.000000
+m (rm=0) roundps_1XX be99999abfa66666000000003f0000a8 80000000bf800000000000003f800000 0.500010: 1.000000 0.000000: 0.000000 -1.300000:-1.000000 -0.300000:-0.000000
+r (rm=1) roundps_1XX be99999abfa66666000000003f0000a8 bf800000c00000000000000000000000 0.500010: 0.000000 0.000000: 0.000000 -1.300000:-2.000000 -0.300000:-1.000000
+m (rm=1) roundps_1XX be99999abfa66666000000003f0000a8 bf800000c00000000000000000000000 0.500010: 0.000000 0.000000: 0.000000 -1.300000:-2.000000 -0.300000:-1.000000
+r (rm=2) roundps_1XX be99999abfa66666000000003f0000a8 80000000bf800000000000003f800000 0.500010: 1.000000 0.000000: 0.000000 -1.300000:-1.000000 -0.300000:-0.000000
+m (rm=2) roundps_1XX be99999abfa66666000000003f0000a8 80000000bf800000000000003f800000 0.500010: 1.000000 0.000000: 0.000000 -1.300000:-1.000000 -0.300000:-0.000000
+r (rm=3) roundps_1XX be99999abfa66666000000003f0000a8 80000000bf8000000000000000000000 0.500010: 0.000000 0.000000: 0.000000 -1.300000:-1.000000 -0.300000:-0.000000
+m (rm=3) roundps_1XX be99999abfa66666000000003f0000a8 80000000bf8000000000000000000000 0.500010: 0.000000 0.000000: 0.000000 -1.300000:-1.000000 -0.300000:-0.000000
+r (rm=0) roundps_1XX bdcccccdbf8ccccd800000003f333333 80000000bf800000800000003f800000 0.700000: 1.000000 -0.000000:-0.000000 -1.100000:-1.000000 -0.100000:-0.000000
+m (rm=0) roundps_1XX bdcccccdbf8ccccd800000003f333333 80000000bf800000800000003f800000 0.700000: 1.000000 -0.000000:-0.000000 -1.100000:-1.000000 -0.100000:-0.000000
+r (rm=1) roundps_1XX bdcccccdbf8ccccd800000003f333333 bf800000c00000008000000000000000 0.700000: 0.000000 -0.000000:-0.000000 -1.100000:-2.000000 -0.100000:-1.000000
+m (rm=1) roundps_1XX bdcccccdbf8ccccd800000003f333333 bf800000c00000008000000000000000 0.700000: 0.000000 -0.000000:-0.000000 -1.100000:-2.000000 -0.100000:-1.000000
+r (rm=2) roundps_1XX bdcccccdbf8ccccd800000003f333333 80000000bf800000800000003f800000 0.700000: 1.000000 -0.000000:-0.000000 -1.100000:-1.000000 -0.100000:-0.000000
+m (rm=2) roundps_1XX bdcccccdbf8ccccd800000003f333333 80000000bf800000800000003f800000 0.700000: 1.000000 -0.000000:-0.000000 -1.100000:-1.000000 -0.100000:-0.000000
+r (rm=3) roundps_1XX bdcccccdbf8ccccd800000003f333333 80000000bf8000008000000000000000 0.700000: 0.000000 -0.000000:-0.000000 -1.100000:-1.000000 -0.100000:-0.000000
+m (rm=3) roundps_1XX bdcccccdbf8ccccd800000003f333333 80000000bf8000008000000000000000 0.700000: 0.000000 -0.000000:-0.000000 -1.100000:-1.000000 -0.100000:-0.000000
+r (rm=0) roundps_1XX 3dcccccdbf6666667f8000003f666666 00000000bf8000007f8000003f800000 0.900000: 1.000000 inf: inf -0.900000:-1.000000 0.100000: 0.000000
+m (rm=0) roundps_1XX 3dcccccdbf6666667f8000003f666666 00000000bf8000007f8000003f800000 0.900000: 1.000000 inf: inf -0.900000:-1.000000 0.100000: 0.000000
+r (rm=1) roundps_1XX 3dcccccdbf6666667f8000003f666666 00000000bf8000007f80000000000000 0.900000: 0.000000 inf: inf -0.900000:-1.000000 0.100000: 0.000000
+m (rm=1) roundps_1XX 3dcccccdbf6666667f8000003f666666 00000000bf8000007f80000000000000 0.900000: 0.000000 inf: inf -0.900000:-1.000000 0.100000: 0.000000
+r (rm=2) roundps_1XX 3dcccccdbf6666667f8000003f666666 3f800000800000007f8000003f800000 0.900000: 1.000000 inf: inf -0.900000:-0.000000 0.100000: 1.000000
+m (rm=2) roundps_1XX 3dcccccdbf6666667f8000003f666666 3f800000800000007f8000003f800000 0.900000: 1.000000 inf: inf -0.900000:-0.000000 0.100000: 1.000000
+r (rm=3) roundps_1XX 3dcccccdbf6666667f8000003f666666 00000000800000007f80000000000000 0.900000: 0.000000 inf: inf -0.900000:-0.000000 0.100000: 0.000000
+m (rm=3) roundps_1XX 3dcccccdbf6666667f8000003f666666 00000000800000007f80000000000000 0.900000: 0.000000 inf: inf -0.900000:-0.000000 0.100000: 0.000000
+r (rm=0) roundps_1XX 3e99999abf333333ff8000003f8ccccd 00000000bf800000ff8000003f800000 1.100000: 1.000000 -inf: -inf -0.700000:-1.000000 0.300000: 0.000000
+m (rm=0) roundps_1XX 3e99999abf333333ff8000003f8ccccd 00000000bf800000ff8000003f800000 1.100000: 1.000000 -inf: -inf -0.700000:-1.000000 0.300000: 0.000000
+r (rm=1) roundps_1XX 3e99999abf333333ff8000003f8ccccd 00000000bf800000ff8000003f800000 1.100000: 1.000000 -inf: -inf -0.700000:-1.000000 0.300000: 0.000000
+m (rm=1) roundps_1XX 3e99999abf333333ff8000003f8ccccd 00000000bf800000ff8000003f800000 1.100000: 1.000000 -inf: -inf -0.700000:-1.000000 0.300000: 0.000000
+r (rm=2) roundps_1XX 3e99999abf333333ff8000003f8ccccd 3f80000080000000ff80000040000000 1.100000: 2.000000 -inf: -inf -0.700000:-0.000000 0.300000: 1.000000
+m (rm=2) roundps_1XX 3e99999abf333333ff8000003f8ccccd 3f80000080000000ff80000040000000 1.100000: 2.000000 -inf: -inf -0.700000:-0.000000 0.300000: 1.000000
+r (rm=3) roundps_1XX 3e99999abf333333ff8000003f8ccccd 0000000080000000ff8000003f800000 1.100000: 1.000000 -inf: -inf -0.700000:-0.000000 0.300000: 0.000000
+m (rm=3) roundps_1XX 3e99999abf333333ff8000003f8ccccd 0000000080000000ff8000003f800000 1.100000: 1.000000 -inf: -inf -0.700000:-0.000000 0.300000: 0.000000
+r (rm=0) roundps_1XX 3efffeb0bf0000a87fc000003fa66666 00000000bf8000007fc000003f800000 1.300000: 1.000000 nan: nan -0.500010:-1.000000 0.499990: 0.000000
+m (rm=0) roundps_1XX 3efffeb0bf0000a87fc000003fa66666 00000000bf8000007fc000003f800000 1.300000: 1.000000 nan: nan -0.500010:-1.000000 0.499990: 0.000000
+r (rm=1) roundps_1XX 3efffeb0bf0000a87fc000003fa66666 00000000bf8000007fc000003f800000 1.300000: 1.000000 nan: nan -0.500010:-1.000000 0.499990: 0.000000
+m (rm=1) roundps_1XX 3efffeb0bf0000a87fc000003fa66666 00000000bf8000007fc000003f800000 1.300000: 1.000000 nan: nan -0.500010:-1.000000 0.499990: 0.000000
+r (rm=2) roundps_1XX 3efffeb0bf0000a87fc000003fa66666 3f800000800000007fc0000040000000 1.300000: 2.000000 nan: nan -0.500010:-0.000000 0.499990: 1.000000
+m (rm=2) roundps_1XX 3efffeb0bf0000a87fc000003fa66666 3f800000800000007fc0000040000000 1.300000: 2.000000 nan: nan -0.500010:-0.000000 0.499990: 1.000000
+r (rm=3) roundps_1XX 3efffeb0bf0000a87fc000003fa66666 00000000800000007fc000003f800000 1.300000: 1.000000 nan: nan -0.500010:-0.000000 0.499990: 0.000000
+m (rm=3) roundps_1XX 3efffeb0bf0000a87fc000003fa66666 00000000800000007fc000003f800000 1.300000: 1.000000 nan: nan -0.500010:-0.000000 0.499990: 0.000000