Files
llvm-6502/test/CodeGen/MIR/X86/global-value-operands.mir
Alex Lorenz 40fefe0084 MIR Parser: Add support for quoted named global value operands.
This commit extends the machine instruction lexer and implements support for
the quoted global value tokens. With this change the syntax for the global value
identifier tokens becomes identical to the syntax for the global identifier
tokens from the LLVM's assembly language.

Reviewers: Duncan P. N. Exon Smith


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242702 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-20 20:31:01 +00:00

103 lines
2.3 KiB
YAML

# RUN: llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s | FileCheck %s
# This test ensures that the MIR parser parses global value operands correctly.
--- |
@G = external global i32
@0 = external global i32
define i32 @inc() {
entry:
%a = load i32, i32* @G
%b = add i32 %a, 1
ret i32 %b
}
define i32 @inc2() {
entry:
%a = load i32, i32* @0
%b = add i32 %a, 1
ret i32 %b
}
@.$0 = external global i32
@-_- = external global i32
@_-_a = external global i32
@$.-B = external global i32
define i32 @test() {
entry:
%a = load i32, i32* @.$0
store i32 %a, i32* @-_-
%b = load i32, i32* @_-_a
store i32 %b, i32* @$.-B
ret i32 %b
}
@"\01Hello@$%09 \\ World," = external global i32
define i32 @test2() {
entry:
%a = load i32, i32* @"\01Hello@$%09 \\ World,"
ret i32 %a
}
...
---
# CHECK: name: inc
name: inc
body:
- id: 0
name: entry
instructions:
# CHECK: - '%rax = MOV64rm %rip, 1, _, @G, _'
- '%rax = MOV64rm %rip, 1, _, @G, _'
- '%eax = MOV32rm %rax, 1, _, 0, _'
- '%eax = INC32r %eax, implicit-def %eflags'
- 'RETQ %eax'
...
---
# CHECK: name: inc2
name: inc2
body:
- id: 0
name: entry
instructions:
# CHECK: - '%rax = MOV64rm %rip, 1, _, @0, _'
- '%rax = MOV64rm %rip, 1, _, @0, _'
- '%eax = MOV32rm %rax, 1, _, 0, _'
- '%eax = INC32r %eax, implicit-def %eflags'
- 'RETQ %eax'
...
---
name: test
body:
- id: 0
name: entry
instructions:
# CHECK: , @".$0",
# CHECK: , @-_-,
# CHECK: , @_-_a,
# CHECK: , @"$.-B",
- '%rax = MOV64rm %rip, 1, _, @.$0, _'
- '%eax = MOV32rm killed %rax, 1, _, 0, _'
- '%rcx = MOV64rm %rip, 1, _, @-_-, _'
- 'MOV32mr killed %rcx, 1, _, 0, _, killed %eax'
- '%rax = MOV64rm %rip, 1, _, @_-_a, _'
- '%eax = MOV32rm killed %rax, 1, _, 0, _'
- '%rcx = MOV64rm %rip, 1, _, @$.-B, _'
- 'MOV32mr killed %rcx, 1, _, 0, _, %eax'
- 'RETQ %eax'
...
---
name: test2
body:
- id: 0
name: entry
instructions:
# CHECK: , @"\01Hello@$%09 \5C World,",
- '%rax = MOV64rm %rip, 1, _, @"\01Hello@$%09 \\ World,", _'
- '%eax = MOV32rm killed %rax, 1, _, 0, _'
- 'RETQ %eax'
...