1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 20:43:44 +02:00
llvm-mirror/test/CodeGen/MIR/X86/global-value-operands.mir
Alex Lorenz 96c6a7e8a7 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
llvm-svn: 242702
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'
...