blob: b0be56b64b25171643fe6bdd6b8811a1ee5ba094 [file] [log] [blame]
Dan Gohman8014e862008-08-20 00:23:20 +00001; RUN: llvm-as < %s | llc -fast-isel
Dan Gohmand3aedf42008-08-19 22:37:59 +00002
3; This tests very minimal fast-isel functionality.
4
5define i32 @foo(i32* %p, i32* %q) {
6entry:
7 %r = load i32* %p
8 %s = load i32* %q
9 br label %fast
10
11fast:
Dan Gohmanbdedd442008-08-20 00:11:48 +000012 %t0 = add i32 %r, %s
13 %t1 = mul i32 %t0, %s
14 %t2 = sub i32 %t1, %s
15 %t3 = and i32 %t2, %s
16 %t4 = or i32 %t3, %s
17 %t5 = xor i32 %t4, %s
Dan Gohmand3aedf42008-08-19 22:37:59 +000018 br label %exit
19
20exit:
Dan Gohmanbdedd442008-08-20 00:11:48 +000021 ret i32 %t5
Dan Gohmand3aedf42008-08-19 22:37:59 +000022}
Dan Gohmanbdedd442008-08-20 00:11:48 +000023
Dan Gohman8014e862008-08-20 00:23:20 +000024define double @bar(double* %p, double* %q) {
25entry:
26 %r = load double* %p
27 %s = load double* %q
28 br label %fast
29
30fast:
31 %t0 = add double %r, %s
32 %t1 = mul double %t0, %s
33 %t2 = sub double %t1, %s
34 br label %exit
35
36exit:
37 ret double %t2
38}
39