xref: /aosp_15_r20/external/llvm/test/CodeGen/MIR/Hexagon/anti-dep-partial.mir (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker# RUN: llc -march=hexagon -post-RA-scheduler -run-pass post-RA-sched %s -o - | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker--- |
4*9880d681SAndroid Build Coastguard Worker  declare void @check(i64, i32, i32, i64)
5*9880d681SAndroid Build Coastguard Worker  define void @foo() {
6*9880d681SAndroid Build Coastguard Worker    ret void
7*9880d681SAndroid Build Coastguard Worker  }
8*9880d681SAndroid Build Coastguard Worker...
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Worker---
11*9880d681SAndroid Build Coastguard Workername: foo
12*9880d681SAndroid Build Coastguard WorkertracksRegLiveness: true
13*9880d681SAndroid Build Coastguard WorkerallVRegsAllocated: true
14*9880d681SAndroid Build Coastguard Workerbody: |
15*9880d681SAndroid Build Coastguard Worker  bb.0:
16*9880d681SAndroid Build Coastguard Worker    successors:
17*9880d681SAndroid Build Coastguard Worker    liveins: %r0, %r1, %d1, %d2, %r16, %r17, %r19, %r22, %r23
18*9880d681SAndroid Build Coastguard Worker        %r2 = A2_add %r23, killed %r17
19*9880d681SAndroid Build Coastguard Worker        %r6 = M2_mpyi %r16, %r16
20*9880d681SAndroid Build Coastguard Worker        %r22 = M2_accii %r22, killed %r2, 2
21*9880d681SAndroid Build Coastguard Worker        %r7 = A2_tfrsi 12345678
22*9880d681SAndroid Build Coastguard Worker        %r3 = A2_tfr killed %r16
23*9880d681SAndroid Build Coastguard Worker        %d2 = A2_tfrp killed %d0
24*9880d681SAndroid Build Coastguard Worker        %r2 = L2_loadri_io %r29, 28
25*9880d681SAndroid Build Coastguard Worker        %r2 = M2_mpyi killed %r6, killed %r2
26*9880d681SAndroid Build Coastguard Worker        %r23 = S2_asr_i_r %r22, 31
27*9880d681SAndroid Build Coastguard Worker        S2_storeri_io killed %r29, 0, killed %r7
28*9880d681SAndroid Build Coastguard Worker        ; The anti-dependency on r23 between the first A2_add and the
29*9880d681SAndroid Build Coastguard Worker        ; S2_asr_i_r was causing d11 to be renamed, while r22 remained
30*9880d681SAndroid Build Coastguard Worker        ; unchanged. Check that the renaming of d11 does not happen.
31*9880d681SAndroid Build Coastguard Worker        ; CHECK: d11
32*9880d681SAndroid Build Coastguard Worker        %d0 = A2_tfrp killed %d11
33*9880d681SAndroid Build Coastguard Worker        J2_call @check, implicit-def %d0, implicit-def %d1, implicit-def %d2, implicit %d0, implicit %d1, implicit %d2
34*9880d681SAndroid Build Coastguard Worker...
35*9880d681SAndroid Build Coastguard Worker
36