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