mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
b608c4e35f
MCJIT served well as the default JIT engine in lli for a long time, but the code is getting old and maintenance efforts don't seem to be in sight. In the meantime Orc became mature enough to fill that gap. The newly added greddy mode is very similar to the execution model of MCJIT. It should work as a drop-in replacement for common JIT tasks. Reviewed By: lhames Differential Revision: https://reviews.llvm.org/D98931
23 lines
620 B
LLVM
23 lines
620 B
LLVM
; RUN: %lli -jit-kind=mcjit %s > /dev/null
|
|
; RUN: %lli %s > /dev/null
|
|
|
|
define i32 @foo(i32 %x, i32 %y, double %d) {
|
|
entry:
|
|
%d.int64 = bitcast double %d to i64
|
|
%d.top64 = lshr i64 %d.int64, 32
|
|
%d.top = trunc i64 %d.top64 to i32
|
|
%d.bottom = trunc i64 %d.int64 to i32
|
|
%topCorrect = icmp eq i32 %d.top, 3735928559
|
|
%bottomCorrect = icmp eq i32 %d.bottom, 4277009102
|
|
%right = and i1 %topCorrect, %bottomCorrect
|
|
%nRight = xor i1 %right, true
|
|
%retVal = zext i1 %nRight to i32
|
|
ret i32 %retVal
|
|
}
|
|
|
|
define i32 @main() {
|
|
entry:
|
|
%call = call i32 @foo(i32 0, i32 1, double 0xDEADBEEFFEEDFACE)
|
|
ret i32 %call
|
|
}
|