brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.1 KiB · 08e5187 Raw
141 lines · plain
1# RUN: llc -mtriple=x86_64 -run-pass none -o - %s | FileCheck %s2# This test ensures that the MIR parser parses global value operands correctly.3 4--- |5 6  @G = external global i327  @0 = external global i328 9  define i32 @inc() {10  entry:11    %a = load i32, ptr @G12    %b = add i32 %a, 113    ret i32 %b14  }15 16  define i32 @inc2() {17  entry:18    %a = load i32, ptr @019    %b = add i32 %a, 120    ret i32 %b21  }22 23  @.$0  = external global i3224  @-_-  = external global i3225  @_-_a = external global i3226  @$.-B = external global i3227 28  define i32 @test() {29  entry:30    %a = load i32, ptr @.$031    store i32 %a, ptr @-_-32    %b = load i32, ptr @_-_a33    store i32 %b, ptr @$.-B34    ret i32 %b35  }36 37  @"\01Hello@$%09 \\ World," = external global i3238 39  define i32 @test2() {40  entry:41    %a = load i32, ptr @"\01Hello@$%09 \\ World,"42    ret i32 %a43  }44 45  define i32 @test3() {46  entry:47    %a = load i32, ptr @.$048    store i32 %a, ptr @-_-49    %b = load i32, ptr @_-_a50    store i32 %b, ptr @$.-B51    ret i32 %b52  }53 54  define i32 @tf() {55  entry:56    %a = load i32, ptr @G57    %b = add i32 %a, 158    ret i32 %b59  }60 61...62---63# CHECK: name: inc64name: inc65body: |66  bb.0.entry:67    ; CHECK: $rax = MOV64rm $rip, 1, $noreg, @G, $noreg68    $rax = MOV64rm $rip, 1, _, @G, _69    $eax = MOV32rm $rax, 1, _, 0, _70    $eax = INC32r $eax, implicit-def $eflags71    RET64 $eax72...73---74# CHECK: name: inc275name: inc276body: |77  bb.0.entry:78    ; CHECK: $rax = MOV64rm $rip, 1, $noreg, @0, $noreg79    $rax = MOV64rm $rip, 1, _, @0, _80    $eax = MOV32rm $rax, 1, _, 0, _81    $eax = INC32r $eax, implicit-def $eflags82    RET64 $eax83...84---85name:            test86body: |87  bb.0.entry:88    ; CHECK: , @".$0",89    ; CHECK: , @-_-,90    ; CHECK: , @_-_a,91    ; CHECK: , @"$.-B",92    $rax = MOV64rm $rip, 1, _, @.$0, _93    $eax = MOV32rm killed $rax, 1, _, 0, _94    $rcx = MOV64rm $rip, 1, _, @-_-, _95    MOV32mr killed $rcx, 1, _, 0, _, killed $eax96    $rax = MOV64rm $rip, 1, _, @_-_a, _97    $eax = MOV32rm killed $rax, 1, _, 0, _98    $rcx = MOV64rm $rip, 1, _, @$.-B, _99    MOV32mr killed $rcx, 1, _, 0, _, $eax100    RET64 $eax101...102---103name:            test2104body: |105  bb.0.entry:106    ; CHECK: , @"\01Hello@$%09 \\ World,",107    $rax = MOV64rm $rip, 1, _, @"\01Hello@$%09 \\ World,", _108    $eax = MOV32rm killed $rax, 1, _, 0, _109    RET64 $eax110...111---112# CHECK: name: test3113name:            test3114body: |115  bb.0.entry:116    ; CHECK: , @".$0",117    ; CHECK: , @-_-,118    ; CHECK: , @_-_a + 4,119    ; CHECK: , @"$.-B" - 8,120    $rax = MOV64rm $rip, 1, _, @.$0 + 0, _121    $eax = MOV32rm killed $rax, 1, _, 0, _122    $rcx = MOV64rm $rip, 1, _, @-_- - 0, _123    MOV32mr killed $rcx, 1, _, 0, _, killed $eax124    $rax = MOV64rm $rip, 1, _, @_-_a + 4, _125    $eax = MOV32rm killed $rax, 1, _, 0, _126    $rcx = MOV64rm $rip, 1, _, @$.-B - 8, _127    MOV32mr killed $rcx, 1, _, 0, _, $eax128    RET64 $eax129...130---131# CHECK: name: tf132name: tf133body: |134  bb.0.entry:135  ; CHECK: $rax = MOV64rm $rip, 1, $noreg, target-flags(x86-gotpcrel) @G, $noreg136    $rax = MOV64rm $rip, 1, _, target-flags(x86-gotpcrel) @G, _137    $eax = MOV32rm $rax, 1, _, 0, _138    $eax = INC32r $eax, implicit-def $eflags139    RET64 $eax140...141