brintos

brintos / llvm-project-archived public Read only

0
0
Text · 15.2 KiB · fd40b3e Raw
389 lines · plain
1# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefixes=GCN,GFX10 %s2# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefixes=GCN %s3 4# GCN-LABEL: name: flat_atomic_fcmpswap_to_s_denorm_mode5# GCN:      FLAT_ATOMIC_FCMPSWAP6# GFX10-NEXT: S_NOP 27# GCN-NEXT: S_DENORM_MODE8---9name:            flat_atomic_fcmpswap_to_s_denorm_mode10body:            |11  bb.0:12    FLAT_ATOMIC_FCMPSWAP undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)13    S_DENORM_MODE 0, implicit-def $mode, implicit $mode14...15 16# GCN-LABEL: name: flat_atomic_fcmpswap_x2_to_s_denorm_mode17# GCN:      FLAT_ATOMIC_FCMPSWAP_X218# GFX10-NEXT: S_NOP 219# GCN-NEXT: S_DENORM_MODE20---21name:            flat_atomic_fcmpswap_x2_to_s_denorm_mode22body:            |23  bb.0:24    FLAT_ATOMIC_FCMPSWAP_X2 undef %0:vreg_64, undef %1:vreg_128, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)25    S_DENORM_MODE 0, implicit-def $mode, implicit $mode26...27 28# GCN-LABEL: name: flat_atomic_fmax_to_s_denorm_mode29# GCN:      FLAT_ATOMIC_FMAX30# GFX10-NEXT: S_NOP 231# GCN-NEXT: S_DENORM_MODE32---33name:            flat_atomic_fmax_to_s_denorm_mode34body:            |35  bb.0:36    FLAT_ATOMIC_FMAX undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)37    S_DENORM_MODE 0, implicit-def $mode, implicit $mode38...39 40# GCN-LABEL: name: flat_atomic_fmax_x2_to_s_denorm_mode41# GCN:      FLAT_ATOMIC_MAX_F6442# GFX10-NEXT: S_NOP 243# GCN-NEXT: S_DENORM_MODE44---45name:            flat_atomic_fmax_x2_to_s_denorm_mode46body:            |47  bb.0:48    FLAT_ATOMIC_MAX_F64 undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)49    S_DENORM_MODE 0, implicit-def $mode, implicit $mode50...51 52# GCN-LABEL: name: flat_atomic_fmin_to_s_denorm_mode53# GCN:      FLAT_ATOMIC_FMIN54# GFX10-NEXT: S_NOP 255# GCN-NEXT: S_DENORM_MODE56---57name:            flat_atomic_fmin_to_s_denorm_mode58body:            |59  bb.0:60    FLAT_ATOMIC_FMIN undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)61    S_DENORM_MODE 0, implicit-def $mode, implicit $mode62...63 64# GCN-LABEL: name: flat_atomic_fmin_x2_to_s_denorm_mode65# GCN:      FLAT_ATOMIC_MIN_F6466# GFX10-NEXT: S_NOP 267# GCN-NEXT: S_DENORM_MODE68---69name:            flat_atomic_fmin_x2_to_s_denorm_mode70body:            |71  bb.0:72    FLAT_ATOMIC_MIN_F64 undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)73    S_DENORM_MODE 0, implicit-def $mode, implicit $mode74...75 76# GCN-LABEL: name: flat_atomic_fcmpswap_x2_rtn_to_s_denorm_mode77# GCN:      FLAT_ATOMIC_FCMPSWAP_X2_RTN78# GFX10-NEXT: S_NOP 279# GCN-NEXT: S_DENORM_MODE80---81name:            flat_atomic_fcmpswap_x2_rtn_to_s_denorm_mode82body:            |83  bb.0:84    %2:vreg_64 = FLAT_ATOMIC_FCMPSWAP_X2_RTN undef %0:vreg_64, undef %1:vreg_128, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)85    S_DENORM_MODE 0, implicit-def $mode, implicit $mode86...87 88# GCN-LABEL: name: flat_atomic_fmax_rtn_to_s_denorm_mode89# GCN:      FLAT_ATOMIC_FMAX_RTN90# GFX10-NEXT: S_NOP 291# GCN-NEXT: S_DENORM_MODE92---93name:            flat_atomic_fmax_rtn_to_s_denorm_mode94body:            |95  bb.0:96    %2:vgpr_32 = FLAT_ATOMIC_FMAX_RTN undef %0:vreg_64, undef %1:vgpr_32, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)97    S_DENORM_MODE 0, implicit-def $mode, implicit $mode98...99 100# GCN-LABEL: name: flat_atomic_fmax_x2_rtn_to_s_denorm_mode101# GCN:      FLAT_ATOMIC_MAX_F64_RTN102# GFX10-NEXT: S_NOP 2103# GCN-NEXT: S_DENORM_MODE104---105name:            flat_atomic_fmax_x2_rtn_to_s_denorm_mode106body:            |107  bb.0:108    %2:vreg_64 = FLAT_ATOMIC_MAX_F64_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)109    S_DENORM_MODE 0, implicit-def $mode, implicit $mode110...111 112# GCN-LABEL: name: flat_atomic_fmin_rtn_to_s_denorm_mode113# GCN:      FLAT_ATOMIC_FMIN_RTN114# GFX10-NEXT: S_NOP 2115# GCN-NEXT: S_DENORM_MODE116---117name:            flat_atomic_fmin_rtn_to_s_denorm_mode118body:            |119  bb.0:120    %2:vgpr_32 = FLAT_ATOMIC_FMIN_RTN undef %0:vreg_64, undef %1:vgpr_32, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)121    S_DENORM_MODE 0, implicit-def $mode, implicit $mode122...123 124# GCN-LABEL: name: flat_atomic_fmin_x2_rtn_to_s_denorm_mode125# GCN:      FLAT_ATOMIC_MIN_F64_RTN126# GFX10-NEXT: S_NOP 2127# GCN-NEXT: S_DENORM_MODE128---129name:            flat_atomic_fmin_x2_rtn_to_s_denorm_mode130body:            |131  bb.0:132    %2:vreg_64 = FLAT_ATOMIC_MIN_F64_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)133    S_DENORM_MODE 0, implicit-def $mode, implicit $mode134...135 136# GCN-LABEL: name: flat_atomic_fcmpswap_rtn_to_s_denorm_mode137# GCN:      FLAT_ATOMIC_FCMPSWAP_RTN138# GFX10-NEXT: S_NOP 2139# GCN-NEXT: S_DENORM_MODE140---141name:            flat_atomic_fcmpswap_rtn_to_s_denorm_mode142body:            |143  bb.0:144    %2:vgpr_32 = FLAT_ATOMIC_FCMPSWAP_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)145    S_DENORM_MODE 0, implicit-def $mode, implicit $mode146...147 148# GCN-LABEL: name: global_atomic_fcmpswap_to_s_denorm_mode149# GCN:      GLOBAL_ATOMIC_FCMPSWAP150# GFX10-NEXT: S_NOP 2151# GCN-NEXT: S_DENORM_MODE152---153name:            global_atomic_fcmpswap_to_s_denorm_mode154body:            |155  bb.0:156    GLOBAL_ATOMIC_FCMPSWAP undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)157    S_DENORM_MODE 0, implicit-def $mode, implicit $mode158...159 160# GCN-LABEL: name: global_atomic_fcmpswap_x2_to_s_denorm_mode161# GCN:      GLOBAL_ATOMIC_FCMPSWAP_X2162# GFX10-NEXT: S_NOP 2163# GCN-NEXT: S_DENORM_MODE164---165name:            global_atomic_fcmpswap_x2_to_s_denorm_mode166body:            |167  bb.0:168    GLOBAL_ATOMIC_FCMPSWAP_X2 undef %0:vreg_64, undef %1:vreg_128, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)169    S_DENORM_MODE 0, implicit-def $mode, implicit $mode170...171 172# GCN-LABEL: name: global_atomic_fmax_to_s_denorm_mode173# GCN:      GLOBAL_ATOMIC_FMAX174# GFX10-NEXT: S_NOP 2175# GCN-NEXT: S_DENORM_MODE176---177name:            global_atomic_fmax_to_s_denorm_mode178body:            |179  bb.0:180    GLOBAL_ATOMIC_FMAX undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)181    S_DENORM_MODE 0, implicit-def $mode, implicit $mode182...183 184# GCN-LABEL: name: global_atomic_fmax_x2_to_s_denorm_mode185# GCN:      GLOBAL_ATOMIC_MAX_F64186# GFX10-NEXT: S_NOP 2187# GCN-NEXT: S_DENORM_MODE188---189name:            global_atomic_fmax_x2_to_s_denorm_mode190body:            |191  bb.0:192    GLOBAL_ATOMIC_MAX_F64 undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)193    S_DENORM_MODE 0, implicit-def $mode, implicit $mode194...195 196# GCN-LABEL: name: global_atomic_fmin_to_s_denorm_mode197# GCN:      GLOBAL_ATOMIC_FMIN198# GFX10-NEXT: S_NOP 2199# GCN-NEXT: S_DENORM_MODE200---201name:            global_atomic_fmin_to_s_denorm_mode202body:            |203  bb.0:204    GLOBAL_ATOMIC_FMIN undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)205    S_DENORM_MODE 0, implicit-def $mode, implicit $mode206...207 208# GCN-LABEL: name: global_atomic_fmin_x2_to_s_denorm_mode209# GCN:      GLOBAL_ATOMIC_MIN_F64210# GFX10-NEXT: S_NOP 2211# GCN-NEXT: S_DENORM_MODE212---213name:            global_atomic_fmin_x2_to_s_denorm_mode214body:            |215  bb.0:216    GLOBAL_ATOMIC_MIN_F64 undef %0:vreg_64, undef %1:vreg_64, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)217    S_DENORM_MODE 0, implicit-def $mode, implicit $mode218...219 220# GCN-LABEL: name: global_atomic_fcmpswap_rtn_to_s_denorm_mode221# GCN:      GLOBAL_ATOMIC_FCMPSWAP_RTN222# GFX10-NEXT: S_NOP 2223# GCN-NEXT: S_DENORM_MODE224---225name:            global_atomic_fcmpswap_rtn_to_s_denorm_mode226body:            |227  bb.0:228    %2:vgpr_32 = GLOBAL_ATOMIC_FCMPSWAP_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)229    S_DENORM_MODE 0, implicit-def $mode, implicit $mode230...231 232# GCN-LABEL: name: global_atomic_fcmpswap_x2_rtn_to_s_denorm_mode233# GCN:      GLOBAL_ATOMIC_FCMPSWAP_X2_RTN234# GFX10-NEXT: S_NOP 2235# GCN-NEXT: S_DENORM_MODE236---237name:            global_atomic_fcmpswap_x2_rtn_to_s_denorm_mode238body:            |239  bb.0:240    %2:vreg_64 = GLOBAL_ATOMIC_FCMPSWAP_X2_RTN undef %0:vreg_64, undef %1:vreg_128, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)241    S_DENORM_MODE 0, implicit-def $mode, implicit $mode242...243 244# GCN-LABEL: name: global_atomic_fmax_rtn_to_s_denorm_mode245# GCN:      GLOBAL_ATOMIC_FMAX_RTN246# GFX10-NEXT: S_NOP 2247# GCN-NEXT: S_DENORM_MODE248---249name:            global_atomic_fmax_rtn_to_s_denorm_mode250body:            |251  bb.0:252    %2:vgpr_32 = GLOBAL_ATOMIC_FMAX_RTN undef %0:vreg_64, undef %1:vgpr_32, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)253    S_DENORM_MODE 0, implicit-def $mode, implicit $mode254...255 256# GCN-LABEL: name: global_atomic_fmax_x2_rtn_to_s_denorm_mode257# GCN:      GLOBAL_ATOMIC_MAX_F64_RTN258# GFX10-NEXT: S_NOP 2259# GCN-NEXT: S_DENORM_MODE260---261name:            global_atomic_fmax_x2_rtn_to_s_denorm_mode262body:            |263  bb.0:264    %2:vreg_64 = GLOBAL_ATOMIC_MAX_F64_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)265    S_DENORM_MODE 0, implicit-def $mode, implicit $mode266...267 268# GCN-LABEL: name: global_atomic_fmin_rtn_to_s_denorm_mode269# GCN:      GLOBAL_ATOMIC_FMIN_RTN270# GFX10-NEXT: S_NOP 2271# GCN-NEXT: S_DENORM_MODE272---273name:            global_atomic_fmin_rtn_to_s_denorm_mode274body:            |275  bb.0:276    %2:vgpr_32 = GLOBAL_ATOMIC_FMIN_RTN undef %0:vreg_64, undef %1:vgpr_32, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)277    S_DENORM_MODE 0, implicit-def $mode, implicit $mode278...279 280# GCN-LABEL: name: global_atomic_fmin_x2_rtn_to_s_denorm_mode281# GCN:      GLOBAL_ATOMIC_MIN_F64_RTN282# GFX10-NEXT: S_NOP 2283# GCN-NEXT: S_DENORM_MODE284---285name:            global_atomic_fmin_x2_rtn_to_s_denorm_mode286body:            |287  bb.0:288    %2:vreg_64 = GLOBAL_ATOMIC_MIN_F64_RTN undef %0:vreg_64, undef %1:vreg_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)289    S_DENORM_MODE 0, implicit-def $mode, implicit $mode290...291 292# GCN-LABEL: name: global_atomic_fcmpswap_saddr_to_s_denorm_mode293# GCN:      GLOBAL_ATOMIC_FCMPSWAP_SADDR294# GFX10-NEXT: S_NOP 2295# GCN-NEXT: S_DENORM_MODE296---297name:            global_atomic_fcmpswap_saddr_to_s_denorm_mode298body:            |299  bb.0:300    GLOBAL_ATOMIC_FCMPSWAP_SADDR undef %0:vgpr_32, undef %1:vreg_64, undef %3:sgpr_64, 0, 0, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)301    S_DENORM_MODE 0, implicit-def $mode, implicit $mode302...303 304# GCN-LABEL: name: global_atomic_fcmpswap_x2_saddr_rtn_to_s_denorm_mode305# GCN:      GLOBAL_ATOMIC_FCMPSWAP_X2_SADDR_RTN306# GFX10-NEXT: S_NOP 2307# GCN-NEXT: S_DENORM_MODE308---309name:            global_atomic_fcmpswap_x2_saddr_rtn_to_s_denorm_mode310body:            |311  bb.0:312    %2:vreg_64 = GLOBAL_ATOMIC_FCMPSWAP_X2_SADDR_RTN undef %0:vgpr_32, undef %1:vreg_128, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)313    S_DENORM_MODE 0, implicit-def $mode, implicit $mode314...315 316# GCN-LABEL: name: global_atomic_fmax_saddr_rtn_to_s_denorm_mode317# GCN:      GLOBAL_ATOMIC_FMAX_SADDR_RTN318# GFX10-NEXT: S_NOP 2319# GCN-NEXT: S_DENORM_MODE320---321name:            global_atomic_fmax_saddr_rtn_to_s_denorm_mode322body:            |323  bb.0:324    %2:vgpr_32 = GLOBAL_ATOMIC_FMAX_SADDR_RTN undef %0:vgpr_32, undef %1:vgpr_32, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)325    S_DENORM_MODE 0, implicit-def $mode, implicit $mode326...327 328# GCN-LABEL: name: global_atomic_fmax_x2_saddr_rtn_to_s_denorm_mode329# GCN:      GLOBAL_ATOMIC_MAX_F64_SADDR_RTN330# GFX10-NEXT: S_NOP 2331# GCN-NEXT: S_DENORM_MODE332---333name:            global_atomic_fmax_x2_saddr_rtn_to_s_denorm_mode334body:            |335  bb.0:336    %2:vreg_64 = GLOBAL_ATOMIC_MAX_F64_SADDR_RTN undef %0:vgpr_32, undef %1:vreg_64, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)337    S_DENORM_MODE 0, implicit-def $mode, implicit $mode338...339 340# GCN-LABEL: name: global_atomic_fmin_saddr_rtn_to_s_denorm_mode341# GCN:      GLOBAL_ATOMIC_FMIN_SADDR_RTN342# GFX10-NEXT: S_NOP 2343# GCN-NEXT: S_DENORM_MODE344---345name:            global_atomic_fmin_saddr_rtn_to_s_denorm_mode346body:            |347  bb.0:348    %2:vgpr_32 = GLOBAL_ATOMIC_FMIN_SADDR_RTN undef %0:vgpr_32, undef %1:vgpr_32, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)349    S_DENORM_MODE 0, implicit-def $mode, implicit $mode350...351 352# GCN-LABEL: name: global_atomic_fmin_x2_saddr_rtn_to_s_denorm_mode353# GCN:      GLOBAL_ATOMIC_MIN_F64_SADDR_RTN354# GFX10-NEXT: S_NOP 2355# GCN-NEXT: S_DENORM_MODE356---357name:            global_atomic_fmin_x2_saddr_rtn_to_s_denorm_mode358body:            |359  bb.0:360    %2:vreg_64 = GLOBAL_ATOMIC_MIN_F64_SADDR_RTN undef %0:vgpr_32, undef %1:vreg_64, undef %3:sgpr_64, 0, 1, implicit $exec :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)361    S_DENORM_MODE 0, implicit-def $mode, implicit $mode362...363 364# GCN-LABEL: name: flat_fp_atomic_to_s_denorm_mode_waitcnt365# GCN:      FLAT_ATOMIC_FMIN366# GCN-NEXT: S_WAITCNT367# GCN-NEXT: S_DENORM_MODE368---369name:            flat_fp_atomic_to_s_denorm_mode_waitcnt370body:            |371  bb.0:372    FLAT_ATOMIC_FMIN undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)373    S_WAITCNT 0374    S_DENORM_MODE 0, implicit-def $mode, implicit $mode375...376 377# GCN-LABEL: name: flat_fp_atomic_to_s_denorm_mode_valu378# GCN:      FLAT_ATOMIC_FMIN379# GCN-NEXT: V_ADD_F32_e32380# GCN-NEXT: S_DENORM_MODE381---382name:            flat_fp_atomic_to_s_denorm_mode_valu383body:            |384  bb.0:385    FLAT_ATOMIC_FMIN undef %0:vreg_64, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load store seq_cst seq_cst (s32) on `ptr addrspace(1) poison`)386    %2:vgpr_32 = V_ADD_F32_e32 undef %1:vgpr_32, undef %1:vgpr_32, implicit $mode, implicit $exec387    S_DENORM_MODE 0, implicit-def $mode, implicit $mode388...389