OSDN Git Service

[InlineSpiller] Don't call TargetInstrInfo::foldMemoryOperand with an empty list.
[android-x86/external-llvm.git] / test / CodeGen / X86 / implicit-use-spill.mir
1 # RUN: llc -run-pass=greedy -mtriple=x86_64-apple-macosx -o - %s 2>&1 | FileCheck %s
2
3 # Make sure we don't assert when we try to reload a value that is just implicitly used.
4 ---
5 # CHECK: name: foo
6 # This test forces a spill of %0.
7 name: foo
8 registers:
9   - { id: 0, class: gr64 }
10 body: |
11   bb.0:
12   ; CHECK: NOOP implicit-def [[VAL:%[0-9]+]]
13   ; VAL should be spilled before csr_noregs, i.e., before we clobber all the registers
14   ; CHECK-NEXT: MOV64mr [[SLOT:%stack.[0-9]+]], 1, _, 0, _, [[VAL]]
15   ; CHECK-NEXT: NOOP csr_noregs
16   ; We need to reload before the (implicit) use.
17   ; CHECK-NEXT: [[RELOADED_VAL:%[0-9]+]] = MOV64rm [[SLOT]], 1, _, 0, _
18   ; CHECK-NEXT: NOOP implicit [[RELOADED_VAL]]
19   NOOP implicit-def %0
20   NOOP csr_noregs
21   NOOP implicit %0
22 ...