1 # RUN: llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s | FileCheck %s
2 # This test ensures that the MIR parser parses global value operands correctly.
6 @G = external global i32
7 @0 = external global i32
11 %a = load i32, i32* @G
18 %a = load i32, i32* @0
23 @.$0 = external global i32
24 @-_- = external global i32
25 @_-_a = external global i32
26 @$.-B = external global i32
30 %a = load i32, i32* @.$0
31 store i32 %a, i32* @-_-
32 %b = load i32, i32* @_-_a
33 store i32 %b, i32* @$.-B
37 @"\01Hello@$%09 \\ World," = external global i32
41 %a = load i32, i32* @"\01Hello@$%09 \\ World,"
47 %a = load i32, i32* @.$0
48 store i32 %a, i32* @-_-
49 %b = load i32, i32* @_-_a
50 store i32 %b, i32* @$.-B
56 %a = load i32, i32* @G
69 # CHECK: - '%rax = MOV64rm %rip, 1, _, @G, _'
70 - '%rax = MOV64rm %rip, 1, _, @G, _'
71 - '%eax = MOV32rm %rax, 1, _, 0, _'
72 - '%eax = INC32r %eax, implicit-def %eflags'
82 # CHECK: - '%rax = MOV64rm %rip, 1, _, @0, _'
83 - '%rax = MOV64rm %rip, 1, _, @0, _'
84 - '%eax = MOV32rm %rax, 1, _, 0, _'
85 - '%eax = INC32r %eax, implicit-def %eflags'
98 - '%rax = MOV64rm %rip, 1, _, @.$0, _'
99 - '%eax = MOV32rm killed %rax, 1, _, 0, _'
100 - '%rcx = MOV64rm %rip, 1, _, @-_-, _'
101 - 'MOV32mr killed %rcx, 1, _, 0, _, killed %eax'
102 - '%rax = MOV64rm %rip, 1, _, @_-_a, _'
103 - '%eax = MOV32rm killed %rax, 1, _, 0, _'
104 - '%rcx = MOV64rm %rip, 1, _, @$.-B, _'
105 - 'MOV32mr killed %rcx, 1, _, 0, _, %eax'
114 # CHECK: , @"\01Hello@$%09 \5C World,",
115 - '%rax = MOV64rm %rip, 1, _, @"\01Hello@$%09 \\ World,", _'
116 - '%eax = MOV32rm killed %rax, 1, _, 0, _'
128 # CHECK: , @_-_a + 4,
129 # CHECK: , @"$.-B" - 8,
130 - '%rax = MOV64rm %rip, 1, _, @.$0 + 0, _'
131 - '%eax = MOV32rm killed %rax, 1, _, 0, _'
132 - '%rcx = MOV64rm %rip, 1, _, @-_- - 0, _'
133 - 'MOV32mr killed %rcx, 1, _, 0, _, killed %eax'
134 - '%rax = MOV64rm %rip, 1, _, @_-_a + 4, _'
135 - '%eax = MOV32rm killed %rax, 1, _, 0, _'
136 - '%rcx = MOV64rm %rip, 1, _, @$.-B - 8, _'
137 - 'MOV32mr killed %rcx, 1, _, 0, _, %eax'
147 # CHECK: %rax = MOV64rm %rip, 1, _, target-flags(x86-gotpcrel) @G, _
148 - '%rax = MOV64rm %rip, 1, _, target-flags(x86-gotpcrel) @G, _'
149 - '%eax = MOV32rm %rax, 1, _, 0, _'
150 - '%eax = INC32r %eax, implicit-def %eflags'