|
From: <sv...@va...> - 2012-09-15 02:21:00
|
florian 2012-09-15 03:22:46 +0100 (Sat, 15 Sep 2012)
New Revision: 12975
Log:
s390: Add a testcase for 32/64-bit bfp comparison insns.
Added files:
trunk/none/tests/s390x/bfp-4.c
trunk/none/tests/s390x/bfp-4.stderr.exp
trunk/none/tests/s390x/bfp-4.stdout.exp
trunk/none/tests/s390x/bfp-4.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-4.stderr.exp (+2 -0)
===================================================================
--- trunk/none/tests/s390x/bfp-4.stderr.exp 2012-09-15 02:04:06 +01:00 (rev 12974)
+++ trunk/none/tests/s390x/bfp-4.stderr.exp 2012-09-15 03:22:46 +01:00 (rev 12975)
@@ -0,0 +1,2 @@
+
+
Added: trunk/none/tests/s390x/bfp-4.c (+61 -0)
===================================================================
--- trunk/none/tests/s390x/bfp-4.c 2012-09-15 02:04:06 +01:00 (rev 12974)
+++ trunk/none/tests/s390x/bfp-4.c 2012-09-15 03:22:46 +01:00 (rev 12975)
@@ -0,0 +1,61 @@
+#include <stdio.h>
+
+/* Test BFP comparison for 32/64-bit. */
+
+void cebr(float v1, float v2)
+{
+ int cc;
+
+ __asm__ volatile("cebr %[r1],%[r2]\n\t"
+ "ipm %[psw]\n\t"
+ "srl %[psw],28\n\t"
+ : [psw]"=d"(cc) : [r1]"f"(v1), [r2]"f"(v2) : "cc");
+ if (cc == 0)
+ printf("cfebr: %f == %f\n", v1, v2);
+ if (cc == 1)
+ printf("cfebr: %f < %f\n", v1, v2);
+ if (cc == 2)
+ printf("cfebr: %f > %f\n", v1, v2);
+}
+
+void cdbr(double v1, double v2)
+{
+ int cc;
+
+ __asm__ volatile("cdbr %[r1],%[r2]\n\t"
+ "ipm %[psw]\n\t"
+ "srl %[psw],28\n\t"
+ : [psw]"=d"(cc) : [r1]"f"(v1), [r2]"f"(v2) : "cc");
+ if (cc == 0)
+ printf("cdebr: %f == %f\n", v1, v2);
+ if (cc == 1)
+ printf("cdebr: %f < %f\n", v1, v2);
+ if (cc == 2)
+ printf("cdebr: %f > %f\n", v1, v2);
+}
+
+int main(void)
+{
+ float f1, f2;
+ float d1, d2;
+
+ // compare 4 bytes
+ f1 = 3.14f;
+ f2 = f1;
+ cebr(f1, f2);
+ f2 = f1 + 10.;
+ cebr(f1, f2);
+ f2 = f1 - 100.;
+ cebr(f1, f2);
+
+ // compare 8 bytes
+ d1 = 2.78;
+ d2 = d1;
+ cdbr(d1, d2);
+ d2 = d1 + 10.;
+ cdbr(d1, d2);
+ d2 = d1 - 100.;
+ cdbr(d1, d2);
+
+ return 0;
+}
Added: trunk/none/tests/s390x/bfp-4.stdout.exp (+6 -0)
===================================================================
--- trunk/none/tests/s390x/bfp-4.stdout.exp 2012-09-15 02:04:06 +01:00 (rev 12974)
+++ trunk/none/tests/s390x/bfp-4.stdout.exp 2012-09-15 03:22:46 +01:00 (rev 12975)
@@ -0,0 +1,6 @@
+cfebr: 3.140000 == 3.140000
+cfebr: 3.140000 < 13.140000
+cfebr: 3.140000 > -96.860001
+cdebr: 2.780000 == 2.780000
+cdebr: 2.780000 < 12.780000
+cdebr: 2.780000 > -97.220001
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
bfp-2
bfp-3
+ .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
bfp-3
bfp-4
Added: trunk/none/tests/s390x/bfp-4.vgtest (+1 -0)
===================================================================
--- trunk/none/tests/s390x/bfp-4.vgtest 2012-09-15 02:04:06 +01:00 (rev 12974)
+++ trunk/none/tests/s390x/bfp-4.vgtest 2012-09-15 03:22:46 +01:00 (rev 12975)
@@ -0,0 +1 @@
+prog: bfp-4
Modified: trunk/none/tests/s390x/Makefile.am (+1 -1)
===================================================================
--- trunk/none/tests/s390x/Makefile.am 2012-09-15 02:04:06 +01:00 (rev 12974)
+++ trunk/none/tests/s390x/Makefile.am 2012-09-15 03:22:46 +01:00 (rev 12975)
@@ -10,7 +10,7 @@
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 \
- bfp-2 bfp-3
+ bfp-2 bfp-3 bfp-4
check_PROGRAMS = $(INSN_TESTS) \
allexec \
|