Fix Windows build by including raw_ostream.h
[oota-llvm.git] / test / CodeGen / XCore / inline-asm.ll
1 ; RUN: llc < %s -march=xcore | FileCheck %s
2 ; CHECK-LABEL: f1:
3 ; CHECK: foo r0
4 define i32 @f1() nounwind {
5 entry:
6   %asmtmp = tail call i32 asm sideeffect "foo $0", "=r"() nounwind
7   ret i32 %asmtmp
8 }
9
10 ; CHECK-LABEL: f2:
11 ; CHECK: foo 5
12 define void @f2() nounwind {
13 entry:
14   tail call void asm sideeffect "foo $0", "i"(i32 5) nounwind
15   ret void
16 }
17
18 ; CHECK-LABEL: f3:
19 ; CHECK: foo 42
20 define void @f3() nounwind {
21 entry:
22   tail call void asm sideeffect "foo ${0:c}", "i"(i32 42) nounwind
23   ret void
24 }
25
26 ; CHECK-LABEL: f4:
27 ; CHECK: foo -99
28 define void @f4() nounwind {
29 entry:
30   tail call void asm sideeffect "foo ${0:n}", "i"(i32 99) nounwind
31   ret void
32 }
33
34 @x = external global i32
35 @y = external global i32, section ".cp.rodata"
36
37 ; CHECK-LABEL: f5:
38 ; CHECK: ldw r0, dp[x]
39 ; CHECK: retsp 0
40 define i32 @f5() nounwind {
41 entry:
42   %asmtmp = call i32 asm "ldw $0, $1", "=r,*m"(i32* @x) nounwind
43   ret i32 %asmtmp
44 }
45
46 ; CHECK-LABEL: f6:
47 ; CHECK: ldw r0, cp[y]
48 ; CHECK: retsp 0
49 define i32 @f6() nounwind {
50 entry:
51   %asmtmp = call i32 asm "ldw $0, $1", "=r,*m"(i32* @y) nounwind
52   ret i32 %asmtmp
53 }