Home | History | Annotate | Download | only in Hexagon
      1 # RUN: llc -march=hexagon -post-RA-scheduler -run-pass post-RA-sched %s -o - | FileCheck %s
      2 
      3 --- |
      4   declare void @check(i64, i32, i32, i64)
      5   define void @foo() {
      6     ret void
      7   }
      8 ...
      9 
     10 ---
     11 name: foo
     12 tracksRegLiveness: true
     13 allVRegsAllocated: true
     14 body: |
     15   bb.0:
     16     successors:
     17     liveins: %r0, %r1, %d1, %d2, %r16, %r17, %r19, %r22, %r23
     18         %r2 = A2_add %r23, killed %r17
     19         %r6 = M2_mpyi %r16, %r16
     20         %r22 = M2_accii %r22, killed %r2, 2
     21         %r7 = A2_tfrsi 12345678
     22         %r3 = A2_tfr killed %r16
     23         %d2 = A2_tfrp killed %d0
     24         %r2 = L2_loadri_io %r29, 28
     25         %r2 = M2_mpyi killed %r6, killed %r2
     26         %r23 = S2_asr_i_r %r22, 31
     27         S2_storeri_io killed %r29, 0, killed %r7
     28         ; The anti-dependency on r23 between the first A2_add and the
     29         ; S2_asr_i_r was causing d11 to be renamed, while r22 remained
     30         ; unchanged. Check that the renaming of d11 does not happen.
     31         ; CHECK: d11
     32         %d0 = A2_tfrp killed %d11
     33         J2_call @check, implicit-def %d0, implicit-def %d1, implicit-def %d2, implicit %d0, implicit %d1, implicit %d2
     34 ...
     35 
     36