Add more PPC floating-point conversion instructions
[oota-llvm.git] / test / CodeGen / PowerPC / i64-to-float.ll
1 ; RUN: llc < %s -mtriple=powerpc64-unknown-linux-gnu -mcpu=a2 | FileCheck %s
2 target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-v128:128:128-n32:64"
3 target triple = "powerpc64-unknown-linux-gnu"
4
5 define float @foo(i64 %a) nounwind {
6 entry:
7   %x = sitofp i64 %a to float
8   ret float %x
9
10 ; CHECK: @foo
11 ; CHECK: std 3,
12 ; CHECK: lfd [[REG:[0-9]+]],
13 ; CHECK: fcfids 1, [[REG]]
14 ; CHECK: blr
15 }
16
17 define double @goo(i64 %a) nounwind {
18 entry:
19   %x = sitofp i64 %a to double
20   ret double %x
21
22 ; CHECK: @goo
23 ; CHECK: std 3,
24 ; CHECK: lfd [[REG:[0-9]+]],
25 ; CHECK: fcfid 1, [[REG]]
26 ; CHECK: blr
27 }
28
29 define float @foou(i64 %a) nounwind {
30 entry:
31   %x = uitofp i64 %a to float
32   ret float %x
33
34 ; CHECK: @foou
35 ; CHECK: std 3,
36 ; CHECK: lfd [[REG:[0-9]+]],
37 ; CHECK: fcfidus 1, [[REG]]
38 ; CHECK: blr
39 }
40
41 define double @goou(i64 %a) nounwind {
42 entry:
43   %x = uitofp i64 %a to double
44   ret double %x
45
46 ; CHECK: @goou
47 ; CHECK: std 3,
48 ; CHECK: lfd [[REG:[0-9]+]],
49 ; CHECK: fcfidu 1, [[REG]]
50 ; CHECK: blr
51 }
52