brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.3 KiB · 2f1eeb8 Raw
321 lines · plain
1# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize64 -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefixes=GCN,GFX10 %s2# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefixes=GCN %s3 4# GCN-LABEL: name: hazard_smem_war5# GCN:        S_LOAD_DWORD_IMM6# GFX10-NEXT: $sgpr_null = S_MOV_B32 07# GCN-NEXT:   V_CMP_EQ_F328---9name: hazard_smem_war10body: |11  bb.0:12    liveins: $sgpr0, $sgpr1, $vgpr0, $vgpr113    $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 014    $sgpr0_sgpr1 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec15    S_ENDPGM 016...17 18# GCN-LABEL: name: hazard_smem_war_no_hazard19# GCN:      S_LOAD_DWORD_IMM20# GCN-NEXT: S_ADD_U3221# GCN-NEXT: V_CMP_EQ_F3222---23name: hazard_smem_war_no_hazard24body: |25  bb.0:26    liveins: $sgpr0, $sgpr1, $sgpr4, $sgpr5, $vgpr0, $vgpr127    $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 028    $sgpr3 = S_ADD_U32 $sgpr4, $sgpr5, implicit-def $scc29    $sgpr0_sgpr1 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec30    S_ENDPGM 031...32 33# GCN-LABEL: name: hazard_smem_war_dependent_salu34# GCN:      S_LOAD_DWORD_IMM35# GCN-NEXT: S_WAITCNT36# GCN-NEXT: S_ADD_U3237# GCN-NEXT: V_CMP_EQ_F3238---39name: hazard_smem_war_dependent_salu40body: |41  bb.0:42    liveins: $sgpr0, $sgpr1, $sgpr4, $vgpr0, $vgpr143    $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 044    S_WAITCNT 045    $sgpr3 = S_ADD_U32 $sgpr2, $sgpr4, implicit-def $scc46    $sgpr0_sgpr1 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec47    S_ENDPGM 048...49 50# GCN-LABEL: name: hazard_smem_war_independent_salu51# GCN:      S_LOAD_DWORD_IMM52# GCN-NEXT: S_WAITCNT53# GCN-NEXT: S_ADD_U3254# GCN-NEXT: V_CMP_EQ_F3255---56name: hazard_smem_war_independent_salu57body: |58  bb.0:59    liveins: $sgpr0, $sgpr1, $sgpr4, $sgpr5, $vgpr0, $vgpr160    $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 061    S_WAITCNT 062    $sgpr3 = S_ADD_U32 $sgpr5, $sgpr4, implicit-def $scc63    $sgpr0_sgpr1 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec64    S_ENDPGM 065...66 67# GCN-LABEL: name: hazard_smem_war_only_smem68# GCN:        S_LOAD_DWORD_IMM69# GCN-NEXT:   S_LOAD_DWORD_IMM70# GFX10-NEXT: $sgpr_null = S_MOV_B32 071# GCN-NEXT:   V_CMP_EQ_F3272---73name: hazard_smem_war_only_smem74body: |75  bb.0:76    liveins: $sgpr0, $sgpr1, $sgpr6, $sgpr7, $vgpr0, $vgpr177    $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 078    $sgpr5 = S_LOAD_DWORD_IMM $sgpr6_sgpr7, 0, 079    $sgpr0_sgpr1 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec80    S_ENDPGM 081...82 83# GCN-LABEL: name: hazard_smem_war_only_waitcnt_084# GCN:      S_LOAD_DWORD_IMM85# GCN-NEXT: S_WAITCNT86# GCN-NEXT: V_CMP_EQ_F3287---88name: hazard_smem_war_only_waitcnt_089body: |90  bb.0:91    liveins: $sgpr0, $sgpr1, $vgpr0, $vgpr192    $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 093    S_WAITCNT 094    $sgpr0_sgpr1 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec95    S_ENDPGM 096...97 98# GCN-LABEL: name: hazard_smem_war_only_vmcnt_099# GCN:        S_LOAD_DWORD_IMM100# GCN-NEXT:   S_WAITCNT 3952{{$}}101# GFX10-NEXT: $sgpr_null = S_MOV_B32 0102# GCN-NEXT:   V_CMP_EQ_F32103---104name: hazard_smem_war_only_vmcnt_0105body: |106  bb.0:107    liveins: $sgpr0, $sgpr1, $vgpr0, $vgpr1108    $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 0109    S_WAITCNT 3952110    $sgpr0_sgpr1 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec111    S_ENDPGM 0112...113 114# GCN-LABEL: name: hazard_smem_war_only_expcnt_0115# GCN:        S_LOAD_DWORD_IMM116# GCN-NEXT:   S_WAITCNT 53007{{$}}117# GFX10-NEXT: $sgpr_null = S_MOV_B32 0118# GCN-NEXT:   V_CMP_EQ_F32119---120name: hazard_smem_war_only_expcnt_0121body: |122  bb.0:123    liveins: $sgpr0, $sgpr1, $vgpr0, $vgpr1124    $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 0125    S_WAITCNT 53007126    $sgpr0_sgpr1 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec127    S_ENDPGM 0128...129 130# GCN-LABEL: name: hazard_smem_war_only_lgkmcnt_0131# GCN:      S_LOAD_DWORD_IMM132# GCN-NEXT: S_WAITCNT 49279{{$}}133# GCN-NEXT: V_CMP_EQ_F32134---135name: hazard_smem_war_only_lgkmcnt_0136body: |137  bb.0:138    liveins: $sgpr0, $sgpr1, $vgpr0, $vgpr1139    $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 0140    S_WAITCNT 49279141    $sgpr0_sgpr1 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec142    S_ENDPGM 0143...144 145# GCN-LABEL: name: hazard_smem_war_only_waitcnt_lgkmcnt_0146# GCN:      S_LOAD_DWORD_IMM147# GCN-NEXT: S_WAITCNT_LGKMCNT148# GCN-NEXT: V_CMP_EQ_F32149---150name: hazard_smem_war_only_waitcnt_lgkmcnt_0151body: |152  bb.0:153    liveins: $sgpr0, $sgpr1, $vgpr0, $vgpr1154    $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 0155    S_WAITCNT_LGKMCNT $sgpr_null, 0156    $sgpr0_sgpr1 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec157    S_ENDPGM 0158...159 160# GCN-LABEL: name: hazard_smem_war_only_waitcnt_lgkmcnt_1161# GCN:        S_LOAD_DWORD_IMM162# GCN-NEXT:   S_WAITCNT_LGKMCNT163# GFX10-NEXT: $sgpr_null = S_MOV_B32 0164# GCN-NEXT:   V_CMP_EQ_F32165---166name: hazard_smem_war_only_waitcnt_lgkmcnt_1167body: |168  bb.0:169    liveins: $sgpr0, $sgpr1, $vgpr0, $vgpr1170    $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 0171    S_WAITCNT_LGKMCNT $sgpr_null, 1172    $sgpr0_sgpr1 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec173    S_ENDPGM 0174...175 176# GCN-LABEL: name: hazard_smem_war_branch177# GCN:   S_LOAD_DWORD_IMM178# GFX10: $sgpr_null = S_MOV_B32 0179# GCN:   V_CMP_EQ_F32180---181name: hazard_smem_war_branch182body: |183  bb.0:184    liveins: $sgpr0, $sgpr1, $sgpr4, $vgpr0, $vgpr1185    successors: %bb.1186    $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 0187    S_BRANCH %bb.1188 189  bb.1:190    liveins: $sgpr0, $sgpr1, $sgpr2, $vgpr0, $vgpr1191    $sgpr0_sgpr1 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec192    S_ENDPGM 0193...194 195# GCN-LABEL: name: hazard_smem_war_cbranch196# GCN:       S_AND_B64197# GCN:       S_LOAD_DWORD_IMM198# GCN:       S_CBRANCH_VCCZ199# GFX10-NOT: $sgpr_null = S_MOV_B32 0200# GCN:       V_CMP_EQ_F32201# GCN:       S_ENDPGM 0202# GFX10:     $sgpr_null = S_MOV_B32 0203# GCN:       V_CMP_EQ_F32204---205name: hazard_smem_war_cbranch206body: |207  bb.0:208    liveins: $sgpr0, $sgpr1, $sgpr4, $sgpr5, $vgpr0, $vgpr1209    successors: %bb.1, %bb.2210    $vcc = S_AND_B64 $sgpr4_sgpr5, $sgpr4_sgpr5, implicit-def $scc211    $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 0212    S_CBRANCH_VCCZ %bb.2, implicit killed $vcc213 214  bb.1:215    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr4, $sgpr5, $vgpr0, $vgpr1216    $sgpr4_sgpr5 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec217    S_ENDPGM 0218 219  bb.2:220    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr4, $sgpr5, $vgpr0, $vgpr1221    $sgpr0_sgpr1 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec222    S_ENDPGM 0223...224 225# GCN-LABEL: name: hazard_smem_war_cbranch_carry226# GCN:       S_AND_B64227# GCN:       S_LOAD_DWORD_IMM228# GCN:       S_CBRANCH_VCCZ229# GFX10-NOT: $sgpr_null = S_MOV_B32 0230# GCN:       V_CMP_EQ_F32231# GCN-NEXT:  S_ENDPGM 0232# GFX10-NOT: $sgpr_null = S_MOV_B32 0233# GCN:       V_CMP_EQ_F32234# GFX10:     $sgpr_null = S_MOV_B32 0235# GCN:       V_CMP_EQ_F32236---237name: hazard_smem_war_cbranch_carry238body: |239  bb.0:240    liveins: $sgpr0, $sgpr1, $sgpr4, $sgpr5, $vgpr0, $vgpr1241    successors: %bb.1, %bb.2242    $vcc = S_AND_B64 $sgpr4_sgpr5, $sgpr4_sgpr5, implicit-def $scc243    $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 0244    S_CBRANCH_VCCZ %bb.2, implicit killed $vcc245 246  bb.1:247    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr4, $sgpr5, $vgpr0, $vgpr1248    $sgpr4_sgpr5 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec249    S_ENDPGM 0250 251  bb.2:252    successors: %bb.3253    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr4, $sgpr5, $vgpr0, $vgpr1254    $sgpr4_sgpr5 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec255 256  bb.3:257    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr4, $sgpr5, $vgpr0, $vgpr1258    $sgpr0_sgpr1 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec259    S_ENDPGM 0260...261 262# GCN-LABEL: name: hazard_smem_war_backedge263# GFX10: $sgpr_null = S_MOV_B32 0264# GCN:   V_CMP_EQ_F32265# GCN:   S_LOAD_DWORD_IMM266---267name: hazard_smem_war_backedge268body: |269  bb.0:270    liveins: $sgpr0, $sgpr1, $sgpr2, $vgpr0, $vgpr1271    successors: %bb.1272    $sgpr0_sgpr1 = V_CMP_EQ_F32_e64 0, $vgpr0, 0, $vgpr1, 1, implicit $mode, implicit $exec273 274  bb.1:275    liveins: $sgpr0, $sgpr1, $sgpr2, $vgpr0, $vgpr1276    $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 0277    S_BRANCH %bb.0278...279 280# GCN-LABEL: name: hazard_smem_war_impdef281# GCN:      S_LOAD_DWORD_IMM282# GFX10:    $sgpr_null = S_MOV_B32 0283# GCN-NEXT: V_CMP_EQ_F32284---285name: hazard_smem_war_impdef286body: |287  bb.0:288    liveins: $vcc, $vgpr0289    $sgpr0 = S_LOAD_DWORD_IMM $vcc, 0, 0290    V_CMP_EQ_F32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $mode, implicit $exec291    S_ENDPGM 0292...293 294# GCN-LABEL: name: hazard_smem_war_readlane295# GCN:      S_LOAD_DWORD_IMM296# GFX10:    $sgpr_null = S_MOV_B32 0297# GCN-NEXT: V_READLANE_B32298---299name: hazard_smem_war_readlane300body: |301  bb.0:302    liveins: $sgpr0, $sgpr1, $sgpr3, $vgpr0303    $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 0304    $sgpr0 = V_READLANE_B32 $vgpr0, $sgpr3305    S_ENDPGM 0306...307 308# GCN-LABEL: name: hazard_smem_war_readfirstlane309# GCN:      S_LOAD_DWORD_IMM310# GFX10:    $sgpr_null = S_MOV_B32 0311# GCN-NEXT: V_READFIRSTLANE_B32312---313name: hazard_smem_war_readfirstlane314body: |315  bb.0:316    liveins: $sgpr0, $sgpr1, $vgpr0317    $sgpr2 = S_LOAD_DWORD_IMM $sgpr0_sgpr1, 0, 0318    $sgpr0 = V_READFIRSTLANE_B32 $vgpr0, implicit $exec319    S_ENDPGM 0320...321