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