1; Targets where we should not enable FastISel.
2; RUN: llc -march=mips -mcpu=mips2 -O0 -relocation-model=pic \
3; RUN:     -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
4; RUN: llc -march=mips -mcpu=mips3 -O0 -relocation-model=pic -target-abi n64 \
5; RUN:     -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
6; RUN: llc -march=mips -mcpu=mips4 -O0 -relocation-model=pic -target-abi n64 \
7; RUN:     -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
8
9; RUN: llc -march=mips -mcpu=mips32r6 -O0 -relocation-model=pic \
10; RUN:     -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
11
12; RUN: llc -march=mips -mattr=mips16 -O0 -relocation-model=pic \
13; RUN:     -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
14
15; RUN: llc -march=mips -mcpu=mips32r2 -mattr=+micromips -O0 -relocation-model=pic \
16; RUN:     -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
17; RUN: llc -march=mips -mcpu=mips32r3 -mattr=+micromips -O0 -relocation-model=pic \
18; RUN:     -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
19; RUN: llc -march=mips -mcpu=mips32r5 -mattr=+micromips -O0 -relocation-model=pic \
20; RUN:     -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
21
22; RUN: llc -march=mips -mcpu=mips64 -O0 -relocation-model=pic -target-abi n64 \
23; RUN:     -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
24; RUN: llc -march=mips -mcpu=mips64r2 -O0 -relocation-model=pic -target-abi n64 \
25; RUN:     -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
26; RUN: llc -march=mips -mcpu=mips64r3 -O0 -relocation-model=pic -target-abi n64 \
27; RUN:     -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
28; RUN: llc -march=mips -mcpu=mips64r5 -O0 -relocation-model=pic -target-abi n64 \
29; RUN:     -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
30; RUN: llc -march=mips -mcpu=mips32r6 -O0 -relocation-model=pic \
31; RUN:     -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
32
33; Valid targets for FastISel.
34; RUN: llc -march=mips -mcpu=mips32r0 -O0 -relocation-model=pic \
35; RUN:     -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s -check-prefix=FISEL
36; RUN: llc -march=mips -mcpu=mips32r2 -O0 -relocation-model=pic \
37; RUN:     -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s -check-prefix=FISEL
38
39; The CHECK prefix is being used by those targets that do not support FastISel.
40; By checking that we don't emit the "FastISel missed terminator..." message,
41; we ensure that we do not generate code through FastISel.
42
43; CHECK-NOT: FastISel missed terminator:   ret i64 0
44
45; The above CHECK will only be valid as long as we *do* emit the missed
46; terminator message for targets that support FastISel. If we add support
47; for i64 return values in the future, then the following FISEL check-prefix
48; will fail and we will have to come up with a new test.
49
50; FISEL: FastISel missed terminator:   ret i64 0
51
52define i64 @foo() {
53entry:
54  ret i64 0
55}
56