Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
88cefc80
Commit
88cefc80
authored
21 years ago
by
Hans-Peter Nilsson
Committed by
Hans-Peter Nilsson
21 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* gcc.c-torture/execute/ieee/mul-subnormal-single-1.c: New test.
From-SVN: r78952
parent
fc7b80e4
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
79 additions
and
0 deletions
+79
-0
gcc/testsuite/ChangeLog
+4
-0
gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.c
+75
-0
No files found.
gcc/testsuite/ChangeLog
View file @
88cefc80
2004-03-05 Hans-Peter Nilsson <hp@axis.com>
* gcc.c-torture/execute/ieee/mul-subnormal-single-1.c: New test.
2004-03-04 Ziemowit Laski <zlaski@apple.com>
PR c++/14425, c++/14426
...
...
This diff is collapsed.
Click to expand it.
gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.c
0 → 100644
View file @
88cefc80
/* Check that certain subnormal numbers (formerly known as denormalized
numbers) are rounded to within 0.5 ulp. PR other/14354. */
/* This test requires that float and unsigned int are the same size and
that the sign-bit of the float is at MSB of the unsigned int. */
#if __INT_MAX__ != 2147483647L
int
main
()
{
exit
(
0
);
}
#else
union
uf
{
unsigned
int
u
;
float
f
;
};
static
float
u2f
(
unsigned
int
v
)
{
union
uf
u
;
u
.
u
=
v
;
return
u
.
f
;
}
static
unsigned
int
f2u
(
float
v
)
{
union
uf
u
;
u
.
f
=
v
;
return
u
.
u
;
}
int
ok
=
1
;
static
void
tstmul
(
unsigned
int
ux
,
unsigned
int
uy
,
unsigned
int
ur
)
{
float
x
=
u2f
(
ux
);
float
y
=
u2f
(
uy
);
if
(
f2u
(
x
*
y
)
!=
ur
)
/* Set a variable rather than aborting here, to simplify tracing when
several computations are wrong. */
ok
=
0
;
}
/* We don't want to make this const and static, or else we risk inlining
causing the test to fold as constants at compile-time. */
struct
{
unsigned
int
p1
,
p2
,
res
;
}
expected
[]
=
{
{
0xfff
,
0x3f800400
,
0xfff
},
{
0xf
,
0x3fc88888
,
0x17
},
{
0xf
,
0x3f844444
,
0xf
}
};
int
main
(
int
argc
,
char
*
argv
[],
char
*
envp
[])
{
unsigned
int
i
;
for
(
i
=
0
;
i
<
sizeof
(
expected
)
/
sizeof
(
expected
[
0
]);
i
++
)
{
tstmul
(
expected
[
i
].
p1
,
expected
[
i
].
p2
,
expected
[
i
].
res
);
tstmul
(
expected
[
i
].
p2
,
expected
[
i
].
p1
,
expected
[
i
].
res
);
}
if
(
!
ok
)
abort
();
exit
(
0
);
}
#endif
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment