Lang Hames | b0bd489 | 2014-01-31 23:36:25 +0000 | [diff] [blame] | 1 | ; RUN: %lli_mcjit -code-model=small %s > /dev/null |
Renato Golin | c2ae1b1 | 2014-02-12 17:17:41 +0000 | [diff] [blame] | 2 | ; XFAIL: mips |
Lang Hames | b0bd489 | 2014-01-31 23:36:25 +0000 | [diff] [blame] | 3 | ; |
| 4 | ; FIXME: Merge this file with non-extern-addend.ll once AArch64 supports PC-rel |
| 5 | ; relocations in ELF. (The code is identical, only the run line differs). |
| 6 | ; |
| 7 | define i32 @foo(i32 %x, i32 %y, double %d) { |
| 8 | entry: |
| 9 | %d.int64 = bitcast double %d to i64 |
| 10 | %d.top64 = lshr i64 %d.int64, 32 |
| 11 | %d.top = trunc i64 %d.top64 to i32 |
| 12 | %d.bottom = trunc i64 %d.int64 to i32 |
| 13 | %topCorrect = icmp eq i32 %d.top, 3735928559 |
| 14 | %bottomCorrect = icmp eq i32 %d.bottom, 4277009102 |
| 15 | %right = and i1 %topCorrect, %bottomCorrect |
| 16 | %nRight = xor i1 %right, true |
| 17 | %retVal = zext i1 %nRight to i32 |
| 18 | ret i32 %retVal |
| 19 | } |
| 20 | |
| 21 | define i32 @main() { |
| 22 | entry: |
| 23 | %call = call i32 @foo(i32 0, i32 1, double 0xDEADBEEFFEEDFACE) |
| 24 | ret i32 %call |
| 25 | } |