1; RUN: llc -mtriple=aarch64-- -debug-pass=Structure %s -o /dev/null 2>&1 \
2; RUN:   -O0 | FileCheck %s --check-prefix ENABLED --check-prefix ENABLED-O0 --check-prefix FALLBACK
3
4; RUN: llc -mtriple=aarch64-- -debug-pass=Structure %s -o /dev/null 2>&1 \
5; RUN:   -O0 -aarch64-enable-global-isel-at-O=0 -global-isel-abort=1 \
6; RUN:   | FileCheck %s --check-prefix ENABLED --check-prefix ENABLED-O0 --check-prefix NOFALLBACK
7
8; RUN: llc -mtriple=aarch64-- -debug-pass=Structure %s -o /dev/null 2>&1 \
9; RUN:   -O0 -aarch64-enable-global-isel-at-O=0 -global-isel-abort=2  \
10; RUN:   | FileCheck %s --check-prefix ENABLED --check-prefix ENABLED-O0 --check-prefix FALLBACK
11
12; RUN: llc -mtriple=aarch64-- -debug-pass=Structure %s -o /dev/null 2>&1 \
13; RUN:   -global-isel \
14; RUN:   | FileCheck %s --check-prefix ENABLED --check-prefix NOFALLBACK
15
16; RUN: llc -mtriple=aarch64-- -debug-pass=Structure %s -o /dev/null 2>&1 \
17; RUN:   -global-isel -global-isel-abort=2 \
18; RUN:   | FileCheck %s --check-prefix ENABLED --check-prefix FALLBACK
19
20; RUN: llc -mtriple=aarch64-- -debug-pass=Structure %s -o /dev/null 2>&1 \
21; RUN:   -O1 -aarch64-enable-global-isel-at-O=3 \
22; RUN:   | FileCheck %s --check-prefix ENABLED
23
24; RUN: llc -mtriple=aarch64-- -debug-pass=Structure %s -o /dev/null 2>&1 \
25; RUN:   -O1 -aarch64-enable-global-isel-at-O=0 \
26; RUN:   | FileCheck %s --check-prefix DISABLED
27
28; RUN: llc -mtriple=aarch64-- -debug-pass=Structure %s -o /dev/null 2>&1 \
29; RUN:   -aarch64-enable-global-isel-at-O=-1 \
30; RUN:   | FileCheck %s --check-prefix DISABLED
31
32; RUN: llc -mtriple=aarch64-- -debug-pass=Structure %s -o /dev/null 2>&1 \
33; RUN:   | FileCheck %s --check-prefix DISABLED
34
35; RUN: llc -mtriple=aarch64-- -fast-isel=0 -global-isel=false \
36; RUN: -debug-pass=Structure %s -o /dev/null 2>&1 | FileCheck %s --check-prefix DISABLED
37
38; ENABLED:       IRTranslator
39; ENABLED-NEXT:  Legalizer
40; ENABLED-NEXT:  RegBankSelect
41; ENABLED-O0-NEXT:  Localizer
42; ENABLED-NEXT:  InstructionSelect
43; ENABLED-NEXT:  ResetMachineFunction
44
45; FALLBACK:       AArch64 Instruction Selection
46; NOFALLBACK-NOT: AArch64 Instruction Selection
47
48; DISABLED-NOT: IRTranslator
49
50; DISABLED: AArch64 Instruction Selection
51; DISABLED: Expand ISel Pseudo-instructions
52
53define void @empty() {
54  ret void
55}
56