2017-08-04 Carl Love <cel@us.ibm.com>
* gcc.target/powerpc/builtins-3.c: Remove ISA 3.0 word variant
builtin test cases for vec_mule, and vec_mulo.
* gcc.target/powerpc/builtins-3-p8.c: Add ISA 3.0 word variant
builtin test cases for vec_mule, and vec_mulo.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250876
138bc75d-0d04-0410-961f-
82ee72b054a4
+2017-08-04 Carl Love <cel@us.ibm.com>
+
+ * gcc.target/powerpc/builtins-3.c: Remove ISA 3.0 word variant
+ builtin test cases for vec_mule, and vec_mulo.
+ * gcc.target/powerpc/builtins-3-p8.c: Add ISA 3.0 word variant
+ builtin test cases for vec_mule, and vec_mulo.
+
2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
PR target/81590
return vec_mradds (x, y, z);
}
+vector signed long long
+test_vsll_mule_vsi_vsi (vector signed int x, vector signed int y)
+{
+ return vec_mule (x, y);
+}
+
+vector unsigned long long
+test_vull_mule_vui_vui (vector unsigned int x, vector unsigned int y)
+{
+ return vec_mule (x, y);
+}
+
+vector signed long long
+test_vsll_mulo_vsi_vsi (vector signed int x, vector signed int y)
+{
+ return vec_mulo (x, y);
+}
+
+vector unsigned long long
+test_vull_mulo_vui_vui (vector unsigned int x, vector unsigned int y)
+{
+ return vec_mulo (x, y);
+}
+
/* Expected test results:
test_eq_long_long 1 vcmpequd inst
test_unsigned_int_popcnt_signed_int 2 vpopcntw
test_unsigned_int_popcnt_unsigned_int 1 vpopcntd
test_unsigned_long_long_popcnt_unsigned_long 1 vpopcntd
- test_vss_mradds_vss_vsss 1 vmhraddshs */
+ test_vss_mradds_vss_vsss 1 vmhraddshs
+ test_vsll_mulo_vsi_vsi 1 vmulosw
+ test_vull_mulo_vui_vui 1 vmulouw
+ test_vsll_mule_vsi_vsi 1 vmulesw
+ test_vull_mule_vui_vui 1 vmuleuw
+ */
/* { dg-final { scan-assembler-times "vcmpequd" 1 } } */
/* { dg-final { scan-assembler-times "vpkudum" 1 } } */
/* { dg-final { scan-assembler-times "vpopcntw" 2 } } */
/* { dg-final { scan-assembler-times "vpopcntd" 2 } } */
/* { dg-final { scan-assembler-times "vmhraddshs" 1 } } */
+/* { dg-final { scan-assembler-times "vmulosw" 1 } } */
+/* { dg-final { scan-assembler-times "vmulouw" 1 } } */
+/* { dg-final { scan-assembler-times "vmulesw" 1 } } */
+/* { dg-final { scan-assembler-times "vmuleuw" 1 } } */
return vec_slo (x, y);
}
-vector signed long long
-test_vsll_mule_vsi_vsi (vector signed int x, vector signed int y)
-{
- return vec_mule (x, y);
-}
-
-vector unsigned long long
-test_vull_mule_vui_vui (vector unsigned int x, vector unsigned int y)
-{
- return vec_mule (x, y);
-}
-
-vector signed long long
-test_vsll_mulo_vsi_vsi (vector signed int x, vector signed int y)
-{
- return vec_mulo (x, y);
-}
-
-vector unsigned long long
-test_vull_mulo_vui_vui (vector unsigned int x, vector unsigned int y)
-{
- return vec_mulo (x, y);
-}
-
vector signed char
test_vsc_sldw_vsc_vsc (vector signed char x, vector signed char y)
{
test_vsll_slo_vsll_vuc 1 vslo
test_vull_slo_vsll_vsc 1 vslo
test_vull_slo_vsll_vuc 1 vslo
- test_vsll_mulo_vsi_vsi 1 vmulosw
- test_vull_mulo_vui_vui 1 vmulouw
- test_vsll_mule_vsi_vsi 1 vmulesw
- test_vull_mule_vui_vui 1 vmuleuw
test_vsc_mulo_vsc_vsc 1 xxsldwi
test_vuc_mulo_vuc_vuc 1 xxsldwi
test_vssi_mulo_vssi_vssi 1 xxsldwi
/* { dg-final { scan-assembler-times "xvnegsp" 1 } } */
/* { dg-final { scan-assembler-times "xvnegdp" 1 } } */
/* { dg-final { scan-assembler-times "vslo" 4 } } */
-/* { dg-final { scan-assembler-times "vmulosw" 1 } } */
-/* { dg-final { scan-assembler-times "vmulouw" 1 } } */
-/* { dg-final { scan-assembler-times "vmulesw" 1 } } */
-/* { dg-final { scan-assembler-times "vmuleuw" 1 } } */
/* { dg-final { scan-assembler-times "xxsldwi" 8 } } */