brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · 7d9dee7 Raw
143 lines · plain
1# RUN: llc -run-pass x86-fixup-bw-insts -mtriple=x86_64-- -o - %s | FileCheck %s2 3# Verify that we correctly deal with the flag edge cases when replacing4# copies by bigger copies, which is a pretty unusual transform.5 6--- |7  target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"8 9  define i8 @test_movb_killed(i8 %a0) {10    ret i8 %a011  }12 13  define i8 @test_movb_impuse(i8 %a0) {14    ret i8 %a015  }16 17  define i8 @test_movb_impdef_gr64(i8 %a0) {18    ret i8 %a019  }20 21  define i8 @test_movb_impdef_gr32(i8 %a0) {22    ret i8 %a023  }24 25  define i8 @test_movb_impdef_gr16(i8 %a0) {26    ret i8 %a027  }28 29  define i16 @test_movw_impdef_gr32(i16 %a0) {30    ret i16 %a031  }32 33  define i16 @test_movw_impdef_gr64(i16 %a0) {34    ret i16 %a035  }36 37...38 39---40name:            test_movb_killed41tracksRegLiveness: true42liveins:43  - { reg: '$edi' }44body:             |45  bb.0 (%ir-block.0):46    liveins: $edi47 48    ; CHECK: $eax = MOV32rr undef $edi, implicit $dil49    $al = MOV8rr killed $dil50    RET64 killed $al51 52...53 54---55name:            test_movb_impuse56tracksRegLiveness: true57liveins:58  - { reg: '$edi' }59body:             |60  bb.0 (%ir-block.0):61    liveins: $edi62 63    ; CHECK: $eax = MOV32rr undef $edi, implicit $dil64    $al = MOV8rr $dil, implicit $edi65    RET64 killed $al66 67...68 69---70name:            test_movb_impdef_gr6471tracksRegLiveness: true72liveins:73  - { reg: '$edi' }74body:             |75  bb.0 (%ir-block.0):76    liveins: $edi77 78    ; CHECK: $eax = MOV32rr undef $edi, implicit $dil, implicit-def $rax79    $al = MOV8rr $dil, implicit-def $rax80    RET64 killed $al81 82...83 84---85name:            test_movb_impdef_gr3286tracksRegLiveness: true87liveins:88  - { reg: '$edi' }89body:             |90  bb.0 (%ir-block.0):91    liveins: $edi92 93    ; CHECK: $eax = MOV32rr undef $edi, implicit $dil94    $al = MOV8rr $dil, implicit-def $eax95    RET64 killed $al96 97...98 99---100name:            test_movb_impdef_gr16101tracksRegLiveness: true102liveins:103  - { reg: '$edi' }104body:             |105  bb.0 (%ir-block.0):106    liveins: $edi107 108    ; CHECK: $eax = MOV32rr undef $edi, implicit $dil109    $al = MOV8rr $dil, implicit-def $ax110    RET64 killed $al111 112...113 114---115name:            test_movw_impdef_gr32116tracksRegLiveness: true117liveins:118  - { reg: '$edi' }119body:             |120  bb.0 (%ir-block.0):121    liveins: $edi122 123    ; CHECK: $eax = MOV32rr undef $edi, implicit $di124    $ax = MOV16rr $di, implicit-def $eax125    RET64 killed $ax126 127...128 129---130name:            test_movw_impdef_gr64131tracksRegLiveness: true132liveins:133  - { reg: '$edi' }134body:             |135  bb.0 (%ir-block.0):136    liveins: $edi137 138    ; CHECK: $eax = MOV32rr undef $edi, implicit $di, implicit-def $rax139    $ax = MOV16rr $di, implicit-def $rax140    RET64 killed $ax141 142...143