|
From: <sv...@va...> - 2012-09-13 03:04:35
|
florian 2012-09-13 04:04:23 +0100 (Thu, 13 Sep 2012)
New Revision: 12967
Log:
s390: Add testcase for square root and load positive/negative/complement.
Tests are for 32/64-bit values only.
Added files:
trunk/none/tests/s390x/bfp-2.c
trunk/none/tests/s390x/bfp-2.stderr.exp
trunk/none/tests/s390x/bfp-2.stdout.exp
trunk/none/tests/s390x/bfp-2.vgtest
Modified directories:
trunk/none/tests/s390x/
Modified files:
trunk/none/tests/s390x/Makefile.am
Modified: trunk/none/tests/s390x/
Added: trunk/none/tests/s390x/bfp-2.stdout.exp (+14 -0)
===================================================================
--- trunk/none/tests/s390x/bfp-2.stdout.exp 2012-09-12 20:40:14 +01:00 (rev 12966)
+++ trunk/none/tests/s390x/bfp-2.stdout.exp 2012-09-13 04:04:23 +01:00 (rev 12967)
@@ -0,0 +1,14 @@
+sqebr 121.000000 -> 11.000000
+sqdbr 144.000000 -> 12.000000
+lnebr -2.500000 -> -2.500000
+lnebr 12.500000 -> -12.500000
+lndbr -0.500000 -> -0.500000
+lndbr 42.500000 -> -42.500000
+lpebr -2.500000 -> 2.500000
+lpebr 12.500000 -> 12.500000
+lpdbr -0.500000 -> 0.500000
+lpdbr 42.500000 -> 42.500000
+lcebr -23.500000 -> 23.500000
+lcebr 123.500000 -> -123.500000
+lcdbr -17.500000 -> 17.500000
+lcdbr 234.500000 -> -234.500000
Added: trunk/none/tests/s390x/bfp-2.c (+102 -0)
===================================================================
--- trunk/none/tests/s390x/bfp-2.c 2012-09-12 20:40:14 +01:00 (rev 12966)
+++ trunk/none/tests/s390x/bfp-2.c 2012-09-13 04:04:23 +01:00 (rev 12967)
@@ -0,0 +1,102 @@
+#include <stdio.h>
+
+/* Test various BFP ops:
+ - square root
+ - load negative
+ - load positive
+ - load complement
+*/
+
+void sqebr(float in)
+{
+ float out;
+
+ __asm__ volatile("sqebr %[out],%[in]" : [out]"=f"(out) : [in]"f"(in));
+ printf("sqebr %f -> %f\n", in, out);
+}
+
+void sqdbr(double in)
+{
+ double out;
+
+ __asm__ volatile("sqdbr %[out],%[in]" : [out]"=f"(out) : [in]"f"(in));
+ printf("sqdbr %f -> %f\n", in, out);
+}
+
+void lnebr(float in)
+{
+ float out;
+
+ __asm__ volatile("lnebr %[out],%[in]" : [out]"=f"(out) : [in]"f"(in));
+ printf("lnebr %f -> %f\n", in, out);
+}
+
+void lndbr(double in)
+{
+ double out;
+
+ __asm__ volatile("lndbr %[out],%[in]" : [out]"=f"(out) : [in]"f"(in));
+ printf("lndbr %f -> %f\n", in, out);
+}
+
+void lpebr(float in)
+{
+ float out;
+
+ __asm__ volatile("lpebr %[out],%[in]" : [out]"=f"(out) : [in]"f"(in));
+ printf("lpebr %f -> %f\n", in, out);
+}
+
+void lpdbr(double in)
+{
+ double out;
+
+ __asm__ volatile("lpdbr %[out],%[in]" : [out]"=f"(out) : [in]"f"(in));
+ printf("lpdbr %f -> %f\n", in, out);
+}
+
+void lcebr(float in)
+{
+ float out;
+
+ __asm__ volatile("lcebr %[out],%[in]" : [out]"=f"(out) : [in]"f"(in));
+ printf("lcebr %f -> %f\n", in, out);
+}
+
+void lcdbr(double in)
+{
+ double out;
+
+ __asm__ volatile("lcdbr %[out],%[in]" : [out]"=f"(out) : [in]"f"(in));
+ printf("lcdbr %f -> %f\n", in, out);
+}
+
+int main(void)
+{
+ // square root
+ sqebr(121.0f); // 4 byte values
+ sqdbr(144.0); // 8 bytes values
+
+ // load negative
+ lnebr(-2.5f); // 4 byte values
+ lnebr(12.5f); // 4 byte values
+
+ lndbr(-0.5); // 8 byte values
+ lndbr(42.5); // 8 byte values
+
+ // load positive
+ lpebr(-2.5f); // 4 byte values
+ lpebr(12.5f); // 4 byte values
+
+ lpdbr(-0.5); // 8 byte values
+ lpdbr(42.5); // 8 byte values
+
+ // load complement
+ lcebr(-23.5f); // 4 byte values
+ lcebr(123.5f); // 4 byte values
+
+ lcdbr(-17.5); // 8 byte values
+ lcdbr(234.5); // 8 byte values
+
+ return 0;
+}
Added: trunk/none/tests/s390x/bfp-2.stderr.exp (+2 -0)
===================================================================
--- trunk/none/tests/s390x/bfp-2.stderr.exp 2012-09-12 20:40:14 +01:00 (rev 12966)
+++ trunk/none/tests/s390x/bfp-2.stderr.exp 2012-09-13 04:04:23 +01:00 (rev 12967)
@@ -0,0 +1,2 @@
+
+
Modified: trunk/none/tests/s390x/Makefile.am (+2 -1)
===================================================================
--- trunk/none/tests/s390x/Makefile.am 2012-09-12 20:40:14 +01:00 (rev 12966)
+++ trunk/none/tests/s390x/Makefile.am 2012-09-13 04:04:23 +01:00 (rev 12967)
@@ -9,7 +9,8 @@
trto trot trtt tr tre cij cgij clij clgij crj cgrj clrj clgrj \
cs csg cds cdsg cu21 cu21_1 cu24 cu24_1 cu42 cu12 cu12_1 \
ex_sig ex_clone cu14 cu14_1 cu41 fpconv ecag fpext fpext_warn \
- rounding-1 rounding-2 rounding-3 rounding-4 rounding-5 bfp-1
+ rounding-1 rounding-2 rounding-3 rounding-4 rounding-5 bfp-1 \
+ bfp-2
check_PROGRAMS = $(INSN_TESTS) \
allexec \
Property changed: trunk/none/tests/s390x (+0 -0)
___________________________________________________________________
Name: svn:ignore
- .deps
add
add_EI
add_GE
allexec
and
and_EI
clc
clcle
cvb
cvd
div
ex_clone
ex_sig
flogr
icm
insert
insert_EI
lam_stam
lpr
Makefile
Makefile.in
mul
mul_GE
mvst
or
or_EI
srst
sub
sub_EI
tcxb
xc
xor
xor_EI
stck
stcke
stckf
op_exception
fgx
condloadstore
fold_And16
stfle
op00
cksm
clcl
mvcl
troo
trot
trto
trtt
tr
tre
clrj
clgrj
crj
cgrj
clij
clgij
cij
cgij
cs
csg
cds
cdsg
cu21
cu21_1
cu24
cu24_1
cu42
cu12
cu12_1
cu14
cu14_1
cu41
ecag
fpext
fpext_warn
fpconv
rounding-1
rounding-2
rounding-3
rounding-4
rounding-5
bfp-1
+ .deps
add
add_EI
add_GE
allexec
and
and_EI
clc
clcle
cvb
cvd
div
ex_clone
ex_sig
flogr
icm
insert
insert_EI
lam_stam
lpr
Makefile
Makefile.in
mul
mul_GE
mvst
or
or_EI
srst
sub
sub_EI
tcxb
xc
xor
xor_EI
stck
stcke
stckf
op_exception
fgx
condloadstore
fold_And16
stfle
op00
cksm
clcl
mvcl
troo
trot
trto
trtt
tr
tre
clrj
clgrj
crj
cgrj
clij
clgij
cij
cgij
cs
csg
cds
cdsg
cu21
cu21_1
cu24
cu24_1
cu42
cu12
cu12_1
cu14
cu14_1
cu41
ecag
fpext
fpext_warn
fpconv
rounding-1
rounding-2
rounding-3
rounding-4
rounding-5
bfp-1
bfp-2
Added: trunk/none/tests/s390x/bfp-2.vgtest (+1 -0)
===================================================================
--- trunk/none/tests/s390x/bfp-2.vgtest 2012-09-12 20:40:14 +01:00 (rev 12966)
+++ trunk/none/tests/s390x/bfp-2.vgtest 2012-09-13 04:04:23 +01:00 (rev 12967)
@@ -0,0 +1 @@
+prog: bfp-2
|