Proceedings of the Sixth Conference on Computer Systems 2011
DOI: 10.1145/1966445.1966475
|View full text |Cite
|
Sign up to set email alerts
|

Symbolic crosschecking of floating-point and SIMD code

Abstract: We present an effective technique for crosschecking an IEEE 754 floating-point program and its SIMD-vectorized version, implemented in KLEE-FP, an extension to the KLEE symbolic execution tool that supports symbolic reasoning on the equivalence between floating-point values.The key insight behind our approach is that floatingpoint values are only reliably equal if they are essentially built by the same operations. As a result, our technique works by lowering the Intel Streaming SIMD Extension (SSE) instruction… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
50
0

Year Published

2012
2012
2024
2024

Publication Types

Select...
4
3
2

Relationship

1
8

Authors

Journals

citations
Cited by 72 publications
(50 citation statements)
references
References 19 publications
0
50
0
Order By: Relevance
“…However, it is projected that floating point units will be built in within a few years. Thus, we are currently looking into a floating point version of KLEE [2].…”
Section: Discussionmentioning
confidence: 99%
“…However, it is projected that floating point units will be built in within a few years. Thus, we are currently looking into a floating point version of KLEE [2].…”
Section: Discussionmentioning
confidence: 99%
“…As a first example, consider a program that uses floating-point numbers. Most DSE engines cannot handle symbolic floating-point computations, mainly due to the poor scalability of floating-point constraint solvers [4]. A possible testability transformation would be to replace all floating-point variables with integers or rational numbers, allowing DSE to make progress, while exploring a limited subset of behaviours.…”
Section: Semantics-altering Transformationsmentioning
confidence: 99%
“…It includes 23:false because if the true branch is taken, the execution will reach new instances of fopen() and fclose() calls. It excludes all instructions in the inner loop (lines [14][15][16][17][18][19][20] and the return instruction (line 24) because they do not affect the event sequence. WOODPECKER then explores only the off-the-path branches included in the slice, and prunes the other ones, i.e., those at lines 14 and 15.…”
Section: Bounded Verification With Woodpeckermentioning
confidence: 99%
“…This verification approach is a form of bounded verification [17]. Researchers have argued and experimentally shown that checking all inputs within a small scope can effectively detect a high portion of bugs and achieve high statement and branch coverage [5,12,19,38].…”
Section: Introductionmentioning
confidence: 99%