133 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=gfx1250 -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefixes=GCN,GFX1250 %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefixes=GCN,GFX1200 %s4 5---6name: trans_writes_valu_reads_hazard7body: |8 bb.0:9 ; GFX1250-LABEL: name: trans_writes_valu_reads_hazard10 ; GFX1250: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec11 ; GFX1250-NEXT: V_NOP_e32 implicit $exec12 ; GFX1250-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec13 ;14 ; GFX1200-LABEL: name: trans_writes_valu_reads_hazard15 ; GFX1200: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec16 ; GFX1200-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec17 $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec18 $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec19...20 21---22name: trans_writes_valu_valu_reads_hazard_covered23body: |24 bb.0:25 ; GCN-LABEL: name: trans_writes_valu_valu_reads_hazard_covered26 ; GCN: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec27 ; GCN-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr2, $vgpr3, implicit $mode, implicit $exec28 ; GCN-NEXT: $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec29 $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec30 $vgpr2 = V_ADD_F32_e32 $vgpr2, $vgpr3, implicit $mode, implicit $exec31 $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec32...33 34---35name: trans_writes_salu_valu_reads_hazard36body: |37 bb.0:38 ; GFX1250-LABEL: name: trans_writes_salu_valu_reads_hazard39 ; GFX1250: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec40 ; GFX1250-NEXT: $sgpr2 = S_ADD_U32 $sgpr0, $sgpr1, implicit-def $scc41 ; GFX1250-NEXT: V_NOP_e32 implicit $exec42 ; GFX1250-NEXT: $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec43 ;44 ; GFX1200-LABEL: name: trans_writes_salu_valu_reads_hazard45 ; GFX1200: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec46 ; GFX1200-NEXT: $sgpr2 = S_ADD_U32 $sgpr0, $sgpr1, implicit-def $scc47 ; GFX1200-NEXT: $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec48 $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec49 $sgpr2 = S_ADD_U32 $sgpr0, $sgpr1, implicit-def $scc50 $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec51...52 53---54name: trans_no_hazard55body: |56 bb.0:57 ; GCN-LABEL: name: trans_no_hazard58 ; GCN: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec59 ; GCN-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr0, $vgpr2, implicit $mode, implicit $exec60 $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec61 $vgpr3 = V_ADD_F32_e32 $vgpr0, $vgpr2, implicit $mode, implicit $exec62...63 64---65name: trans_reads_valu_writes_hazard66body: |67 bb.0:68 ; GFX1250-LABEL: name: trans_reads_valu_writes_hazard69 ; GFX1250: $vgpr1 = V_COS_F32_e32 $vgpr0, implicit $mode, implicit $exec70 ; GFX1250-NEXT: V_NOP_e32 implicit $exec71 ; GFX1250-NEXT: $vgpr0 = V_ADD_F32_e32 $vgpr2, $vgpr3, implicit $mode, implicit $exec72 ;73 ; GFX1200-LABEL: name: trans_reads_valu_writes_hazard74 ; GFX1200: $vgpr1 = V_COS_F32_e32 $vgpr0, implicit $mode, implicit $exec75 ; GFX1200-NEXT: $vgpr0 = V_ADD_F32_e32 $vgpr2, $vgpr3, implicit $mode, implicit $exec76 $vgpr1 = V_COS_F32_e32 $vgpr0, implicit $mode, implicit $exec77 $vgpr0 = V_ADD_F32_e32 $vgpr2, $vgpr3, implicit $mode, implicit $exec78...79 80---81name: trans_reads_valu_valu_writes_hazard_covered82body: |83 bb.0:84 ; GCN-LABEL: name: trans_reads_valu_valu_writes_hazard_covered85 ; GCN: $vgpr1 = V_COS_F32_e32 $vgpr0, implicit $mode, implicit $exec86 ; GCN-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr2, $vgpr3, implicit $mode, implicit $exec87 ; GCN-NEXT: $vgpr0 = V_ADD_F32_e32 $vgpr4, $vgpr2, implicit $mode, implicit $exec88 $vgpr1 = V_COS_F32_e32 $vgpr0, implicit $mode, implicit $exec89 $vgpr2 = V_ADD_F32_e32 $vgpr2, $vgpr3, implicit $mode, implicit $exec90 $vgpr0 = V_ADD_F32_e32 $vgpr4, $vgpr2, implicit $mode, implicit $exec91...92 93---94name: trans_reads__salu_valu_writes_hazard95body: |96 bb.0:97 ; GFX1250-LABEL: name: trans_reads__salu_valu_writes_hazard98 ; GFX1250: $vgpr1 = V_COS_F32_e32 $vgpr0, implicit $mode, implicit $exec99 ; GFX1250-NEXT: $sgpr2 = S_ADD_U32 $sgpr0, $sgpr1, implicit-def $scc100 ; GFX1250-NEXT: V_NOP_e32 implicit $exec101 ; GFX1250-NEXT: $vgpr0 = V_ADD_F32_e32 $vgpr4, $vgpr2, implicit $mode, implicit $exec102 ;103 ; GFX1200-LABEL: name: trans_reads__salu_valu_writes_hazard104 ; GFX1200: $vgpr1 = V_COS_F32_e32 $vgpr0, implicit $mode, implicit $exec105 ; GFX1200-NEXT: $sgpr2 = S_ADD_U32 $sgpr0, $sgpr1, implicit-def $scc106 ; GFX1200-NEXT: $vgpr0 = V_ADD_F32_e32 $vgpr4, $vgpr2, implicit $mode, implicit $exec107 $vgpr1 = V_COS_F32_e32 $vgpr0, implicit $mode, implicit $exec108 $sgpr2 = S_ADD_U32 $sgpr0, $sgpr1, implicit-def $scc109 $vgpr0 = V_ADD_F32_e32 $vgpr4, $vgpr2, implicit $mode, implicit $exec110...111 112---113name: trans_writes_trans_reads_no_hazard114body: |115 bb.0:116 ; GCN-LABEL: name: trans_writes_trans_reads_no_hazard117 ; GCN: $vgpr1 = V_COS_F32_e32 $vgpr0, implicit $mode, implicit $exec118 ; GCN-NEXT: $vgpr2 = V_SQRT_F32_e32 $vgpr1, implicit $mode, implicit $exec119 $vgpr1 = V_COS_F32_e32 $vgpr0, implicit $mode, implicit $exec120 $vgpr2 = V_SQRT_F32_e32 $vgpr1, implicit $mode, implicit $exec121...122 123---124name: trans_reads_trans_writes_no_hazard125body: |126 bb.0:127 ; GCN-LABEL: name: trans_reads_trans_writes_no_hazard128 ; GCN: $vgpr1 = V_COS_F32_e32 $vgpr0, implicit $mode, implicit $exec129 ; GCN-NEXT: $vgpr0 = V_SQRT_F32_e32 $vgpr2, implicit $mode, implicit $exec130 $vgpr1 = V_COS_F32_e32 $vgpr0, implicit $mode, implicit $exec131 $vgpr0 = V_SQRT_F32_e32 $vgpr2, implicit $mode, implicit $exec132...133