Commit f6a02135 by Wei Xiao Committed by Xuepeng Guo

avx512f-vfixupimmpd-2.c: Fix the test cases for VFIXUPIMM* intrinsics.

gcc/testsuite/ChangeLog
2019-01-17  Wei Xiao  <wei3.xiao@intel.com>

	* gcc.target/i386/avx512f-vfixupimmpd-2.c: Fix the test cases for
	VFIXUPIMM* intrinsics.
	* gcc.target/i386/avx512f-vfixupimmps-2.c: Ditto.
	* gcc.target/i386/avx512f-vfixupimmsd-2.c: Ditto.
	* gcc.target/i386/avx512f-vfixupimmss-2.c: Ditto.

From-SVN: r268014
parent 040d2bba
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
PR target/88794 PR target/88794
Revert: Revert:
2018-11-06 Wei Xiao <wei3.xiao@intel.com> 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
* config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics. * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
......
2019-01-17 Wei Xiao <wei3.xiao@intel.com> 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
* gcc.target/i386/avx512f-vfixupimmpd-2.c: Fix the test cases for
VFIXUPIMM* intrinsics.
* gcc.target/i386/avx512f-vfixupimmps-2.c: Ditto.
* gcc.target/i386/avx512f-vfixupimmsd-2.c: Ditto.
* gcc.target/i386/avx512f-vfixupimmss-2.c: Ditto.
2019-01-17 Wei Xiao <wei3.xiao@intel.com>
PR target/88794 PR target/88794
Revert: Revert:
2018-11-06 Wei Xiao <wei3.xiao@intel.com> 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
......
...@@ -14,12 +14,12 @@ ...@@ -14,12 +14,12 @@
static void static void
CALC (double *r, double src, long long tbl) CALC (double *r, double dest, double src, long long tbl)
{ {
switch (tbl & 0xf) switch (tbl & 0xf)
{ {
case 0: case 0:
*r = src; *r = dest;
break; break;
case 1: case 1:
*r = src; *r = src;
...@@ -81,7 +81,7 @@ TEST (void) ...@@ -81,7 +81,7 @@ TEST (void)
float vals[2] = { -10, 10 }; float vals[2] = { -10, 10 };
int controls[8] = {0x11111111, 0x77777777, 0x77777777, 0x88888888, int controls[8] = {0, 0x11111111, 0x77777777, 0x88888888,
0x99999999, 0xaaaaaaaa, 0xbbbbbbbb, 0xcccccccc}; 0x99999999, 0xaaaaaaaa, 0xbbbbbbbb, 0xcccccccc};
MASK_TYPE mask = MASK_VALUE; MASK_TYPE mask = MASK_VALUE;
...@@ -96,7 +96,7 @@ TEST (void) ...@@ -96,7 +96,7 @@ TEST (void)
res2.a[j] = DEFAULT_VALUE; res2.a[j] = DEFAULT_VALUE;
res3.a[j] = DEFAULT_VALUE; res3.a[j] = DEFAULT_VALUE;
CALC (&res_ref[j], s1.a[j], s2.a[j]); CALC (&res_ref[j], res1.a[j], s1.a[j], s2.a[j]);
} }
res1.x = INTRINSIC (_fixupimm_pd) (res1.x, s1.x, s2.x, 0); res1.x = INTRINSIC (_fixupimm_pd) (res1.x, s1.x, s2.x, 0);
......
...@@ -13,12 +13,12 @@ ...@@ -13,12 +13,12 @@
#include "float.h" #include "float.h"
static void static void
CALC (float *r, float src, int tbl) CALC (float *r, float dest, float src, int tbl)
{ {
switch (tbl & 0xf) switch (tbl & 0xf)
{ {
case 0: case 0:
*r = src; *r = dest;
break; break;
case 1: case 1:
*r = src; *r = src;
...@@ -81,8 +81,8 @@ TEST (void) ...@@ -81,8 +81,8 @@ TEST (void)
float vals[2] = { -10, 10 }; float vals[2] = { -10, 10 };
int controls[16] = { 0x11111111, int controls[16] = { 0,
0x77777777, 0x88888888, 0x99999999, 0x11111111, 0x88888888, 0x99999999,
0xaaaaaaaa, 0xbbbbbbbb, 0xcccccccc, 0xaaaaaaaa, 0xbbbbbbbb, 0xcccccccc,
0x77777777, 0x88888888, 0x99999999, 0x77777777, 0x88888888, 0x99999999,
0xaaaaaaaa, 0xbbbbbbbb, 0xcccccccc, 0xaaaaaaaa, 0xbbbbbbbb, 0xcccccccc,
...@@ -101,7 +101,7 @@ TEST (void) ...@@ -101,7 +101,7 @@ TEST (void)
res2.a[j] = DEFAULT_VALUE; res2.a[j] = DEFAULT_VALUE;
res3.a[j] = DEFAULT_VALUE; res3.a[j] = DEFAULT_VALUE;
CALC (&res_ref[j], s1.a[j], s2.a[j]); CALC (&res_ref[j], res1.a[j], s1.a[j], s2.a[j]);
} }
res1.x = INTRINSIC (_fixupimm_ps) (res1.x, s1.x, s2.x, 0); res1.x = INTRINSIC (_fixupimm_ps) (res1.x, s1.x, s2.x, 0);
......
...@@ -10,12 +10,12 @@ ...@@ -10,12 +10,12 @@
#include "avx512f-mask-type.h" #include "avx512f-mask-type.h"
void void
compute_fixupimmpd (double *r, double src, long long tbl) compute_fixupimmpd (double *r, double dest, double src, long long tbl)
{ {
switch (tbl & 0xf) switch (tbl & 0xf)
{ {
case 0: case 0:
*r = src; *r = dest;
break; break;
case 1: case 1:
*r = src; *r = src;
...@@ -76,7 +76,7 @@ avx512f_test (void) ...@@ -76,7 +76,7 @@ avx512f_test (void)
int i, j; int i, j;
float vals[2] = { -10, 10 }; float vals[2] = { -10, 10 };
int controls[10] = { 0x11111111, int controls[10] = { 0,
0x77777777, 0x88888888, 0x99999999, 0x77777777, 0x88888888, 0x99999999,
0xaaaaaaaa, 0xbbbbbbbb, 0xcccccccc, 0xaaaaaaaa, 0xbbbbbbbb, 0xcccccccc,
0xdddddddd, 0xeeeeeeee, 0xffffffff 0xdddddddd, 0xeeeeeeee, 0xffffffff
...@@ -98,7 +98,7 @@ avx512f_test (void) ...@@ -98,7 +98,7 @@ avx512f_test (void)
for (j = 0; j < 10; j++) for (j = 0; j < 10; j++)
{ {
s2.a[0] = controls[j]; s2.a[0] = controls[j];
compute_fixupimmpd (&res_ref[0], s1.a[0], s2.a[0]); compute_fixupimmpd (&res_ref[0], res1.a[0], s1.a[0], s2.a[0]);
res1.x = _mm_fixupimm_sd (res1.x, s1.x, s2.x, 0); res1.x = _mm_fixupimm_sd (res1.x, s1.x, s2.x, 0);
res2.x = _mm_mask_fixupimm_sd (res2.x, mask, s1.x, s2.x, 0); res2.x = _mm_mask_fixupimm_sd (res2.x, mask, s1.x, s2.x, 0);
......
...@@ -10,12 +10,12 @@ ...@@ -10,12 +10,12 @@
#include "avx512f-mask-type.h" #include "avx512f-mask-type.h"
void void
compute_fixupimmps (float *r, float src, int tbl) compute_fixupimmps (float *r, float dest, float src, int tbl)
{ {
switch (tbl & 0xf) switch (tbl & 0xf)
{ {
case 0: case 0:
*r = src; *r = dest;
break; break;
case 1: case 1:
*r = src; *r = src;
...@@ -76,7 +76,7 @@ avx512f_test (void) ...@@ -76,7 +76,7 @@ avx512f_test (void)
int i, j, k; int i, j, k;
float vals[2] = { -10, 10 }; float vals[2] = { -10, 10 };
int controls[10] = { 0x11111111, int controls[10] = { 0,
0x77777777, 0x88888888, 0x99999999, 0x77777777, 0x88888888, 0x99999999,
0xaaaaaaaa, 0xbbbbbbbb, 0xcccccccc, 0xaaaaaaaa, 0xbbbbbbbb, 0xcccccccc,
0xdddddddd, 0xeeeeeeee, 0xffffffff 0xdddddddd, 0xeeeeeeee, 0xffffffff
...@@ -99,7 +99,7 @@ avx512f_test (void) ...@@ -99,7 +99,7 @@ avx512f_test (void)
for (j = 0; j < 10; j++) for (j = 0; j < 10; j++)
{ {
s2.a[0] = controls[j]; s2.a[0] = controls[j];
compute_fixupimmps (&res_ref[0], s1.a[0], s2.a[0]); compute_fixupimmps (&res_ref[0], res1.a[0], s1.a[0], s2.a[0]);
res1.x = _mm_fixupimm_ss (res1.x, s1.x, s2.x, 0); res1.x = _mm_fixupimm_ss (res1.x, s1.x, s2.x, 0);
res2.x = _mm_mask_fixupimm_ss (res2.x, mask, s1.x, s2.x, 0); res2.x = _mm_mask_fixupimm_ss (res2.x, mask, s1.x, s2.x, 0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment