brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · fbf4b30 Raw
78 lines · plain
1# RUN: llc -x mir < %s | FileCheck %s2--- |3  target triple = "x86_64-unknown-linux-gnu"4 5  @x = external global i646  @i = external thread_local global i327 8  define i32 @or() {9  entry:10    ret i32 undef11  }12 13  define i32 @and() {14  entry:15    ret i32 undef16  }17...18---19# CHECK-LABEL: or:20name: or21alignment: 1622tracksRegLiveness: true23registers:24  - { id: 0, class: gr64 }25  - { id: 1, class: gr64 }26  - { id: 2, class: gr64 }27  - { id: 3, class: gr64 }28  - { id: 4, class: gr32 }29body: |30  bb.0.entry:31    %0:gr64 = MOV64rm $rip, 1, $noreg, @x, $noreg :: (load (s64))32    %1:gr64 = OR64ri8 %0, 7, implicit-def dead $eflags33    %2:gr64 = MOV64rm $rip, 1, $noreg, target-flags(x86-gottpoff) @i, $noreg :: (load (s64))34    %3:gr64 = OR64rr %2, %1, implicit-def dead $eflags35    %4:gr32 = MOV32rm killed %3, 1, $noreg, 0, $fs :: (load (s32))36  ; CHECK-NOT:  orq {{.*}}GOTTPOFF{{.*}}37  ;38  ; What we actually expect:39  ; CHECK:      movq {{.*}}GOTTPOFF{{.*}}, %[[R:.*]]40  ; CHECK-NEXT: orq %{{.*}}, %[[R]]41  ; CHECK-NEXT: movl %fs:(%[[R]]),42  ;43  ; CHECK-NOT:  orq {{.*}}GOTTPOFF{{.*}}44    $eax = COPY %445    RET 0, $eax46 47...48---49# CHECK-LABEL: and:50name: and51alignment: 1652tracksRegLiveness: true53registers:54  - { id: 0, class: gr64 }55  - { id: 1, class: gr64 }56  - { id: 2, class: gr64 }57  - { id: 3, class: gr64 }58  - { id: 4, class: gr32 }59body: |60  bb.0.entry:61    %0:gr64 = MOV64rm $rip, 1, $noreg, @x, $noreg :: (load (s64))62    %1:gr64 = OR64ri8 %0, 7, implicit-def dead $eflags63    %2:gr64 = MOV64rm $rip, 1, $noreg, target-flags(x86-gottpoff) @i, $noreg :: (load (s64))64    %3:gr64 = AND64rr %2, %1, implicit-def dead $eflags65    %4:gr32 = MOV32rm killed %3, 1, $noreg, 0, $fs :: (load (s32))66  ; CHECK-NOT:  andq {{.*}}GOTTPOFF{{.*}}67  ;68  ; What we actually expect:69  ; CHECK:      movq {{.*}}GOTTPOFF{{.*}}, %[[R:.*]]70  ; CHECK-NEXT: andq %{{.*}}, %[[R]]71  ; CHECK-NEXT: movl %fs:(%[[R]]),72  ;73  ; CHECK-NOT:  andq {{.*}}GOTTPOFF{{.*}}74    $eax = COPY %475    RET 0, $eax76 77...78