brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.3 KiB · 90335b7 Raw
360 lines · plain
1# RUN: llc -mtriple=amdgcn -mcpu=hawaii -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN -DVCCRC=sreg_64_xexec %s2# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN -DVCCRC=sreg_64_xexec %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN -DVCCRC=sreg_32_xm0_xexec %s4# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN -DVCCRC=sreg_32_xm0_xexec %s5 6---7name:            icmp_s32_s_mix8legalized:       true9regBankSelected: true10 11# GCN: name: icmp_s32_s_mix12# GCN: [[SGPR0:%[0-9]+]]:sreg_32 = COPY $sgpr013# GCN: [[SGPR1:%[0-9]+]]:sreg_32 = COPY $sgpr114# GCN: [[SGPR2:%[0-9]+]]:sreg_32 = COPY $sgpr215# GCN: [[SGPR3:%[0-9]+]]:sreg_32 = COPY $sgpr316# GCN: [[SGPR4:%[0-9]+]]:sreg_32 = COPY $sgpr417# GCN: [[SGPR5:%[0-9]+]]:sreg_32 = COPY $sgpr518# GCN: [[SGPR6:%[0-9]+]]:sreg_32 = COPY $sgpr619# GCN: [[SGPR7:%[0-9]+]]:sreg_32 = COPY $sgpr720# GCN: S_CMP_LG_U32 [[SGPR0]], [[SGPR1]], implicit-def $scc21# GCN-NEXT: [[COND0:%[0-9]+]]:sreg_32 = COPY $scc22# GCN: S_CMP_LG_U32 [[SGPR4]], [[SGPR5]], implicit-def $scc23# GCN-NEXT: [[COND1:%[0-9]+]]:sreg_32 = COPY $scc24# GCN: $scc = COPY [[COND0]]25# GCN-NEXT: S_CSELECT_B32 [[SGPR6]], [[SGPR7]], implicit $scc26# GCN: $scc = COPY [[COND1]]27# GCN-NEXT: S_CSELECT_B32 [[SGPR2]], [[SGPR3]], implicit $scc28 29body: |30  bb.0:31    liveins:  $vgpr0_vgpr1, $sgpr0, $sgpr1, $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr732 33    %0:vgpr(p1) = COPY $vgpr0_vgpr134    %1:sgpr(s32) = COPY $sgpr035    %2:sgpr(s32) = COPY $sgpr136    %3:sgpr(s32) = COPY $sgpr237    %4:sgpr(s32) = COPY $sgpr338    %5:sgpr(s32) = COPY $sgpr439    %6:sgpr(s32) = COPY $sgpr540    %7:sgpr(s32) = COPY $sgpr641    %8:sgpr(s32) = COPY $sgpr742    %9:sgpr(s32) = G_ICMP intpred(ne), %1, %243    %10:sgpr(s32) = G_ICMP intpred(ne), %5, %644    %11:sgpr(s32) = G_SELECT %9, %7, %845    %12:sgpr(s32) = G_SELECT %10, %3, %446    %13:vgpr(s32) = COPY %1147    G_STORE %13, %0 :: (volatile store (s32), addrspace 1)48    %14:vgpr(s32) = COPY %1249    G_STORE %14, %0 :: (volatile store (s32), addrspace 1)50 51...52---53name:            icmp_s32_salu54legalized:       true55regBankSelected: true56 57# GCN-LABEL: name: icmp_s32_salu58# GCN: S_CMP_LG_U3259# GCN: S_CMP_EQ_U3260# GCN: S_CMP_GT_I3261# GCN: S_CMP_GE_I3262# GCN: S_CMP_LT_I3263# GCN: S_CMP_LE_I3264# GCN: S_CMP_GT_U3265# GCN: S_CMP_GE_U3266# GCN: S_CMP_LT_U3267# GCN: S_CMP_LE_U3268 69body: |70  bb.0:71    liveins: $vgpr0_vgpr1, $sgpr0, $sgpr1, $sgpr2, $sgpr372 73    %0:vgpr(p1) = COPY $vgpr0_vgpr174    %1:sgpr(s32) = COPY $sgpr075    %2:sgpr(s32) = COPY $sgpr176    %3:sgpr(s32) = COPY $sgpr277    %4:sgpr(s32) = COPY $sgpr378    %5:sgpr(s32) = G_ICMP intpred(ne), %1, %279    %6:sgpr(s32) = G_ICMP intpred(eq), %1, %280    %7:sgpr(s32) = G_ICMP intpred(sgt), %1, %281    %8:sgpr(s32) = G_ICMP intpred(sge), %1, %282    %9:sgpr(s32) = G_ICMP intpred(slt), %1, %283    %10:sgpr(s32) = G_ICMP intpred(sle), %1, %284    %11:sgpr(s32) = G_ICMP intpred(ugt), %1, %285    %12:sgpr(s32) = G_ICMP intpred(uge), %1, %286    %13:sgpr(s32) = G_ICMP intpred(ult), %1, %287    %14:sgpr(s32) = G_ICMP intpred(ule), %1, %288    %15:sgpr(s32) = G_SELECT %5, %3, %489    %16:sgpr(s32) = G_SELECT %6, %3, %490    %17:sgpr(s32) = G_SELECT %7, %3, %491    %18:sgpr(s32) = G_SELECT %8, %3, %492    %19:sgpr(s32) = G_SELECT %9, %3, %493    %20:sgpr(s32) = G_SELECT %10, %3, %494    %21:sgpr(s32) = G_SELECT %11, %3, %495    %22:sgpr(s32) = G_SELECT %12, %3, %496    %23:sgpr(s32) = G_SELECT %13, %3, %497    %24:sgpr(s32) = G_SELECT %14, %3, %498    %25:vgpr(s32) = COPY %1599    G_STORE %25, %0 :: (volatile store (s32), addrspace 1)100    %26:vgpr(s32) = COPY %16101    G_STORE %26, %0 :: (volatile store (s32), addrspace 1)102    %27:vgpr(s32) = COPY %17103    G_STORE %27, %0 :: (volatile store (s32), addrspace 1)104    %28:vgpr(s32) = COPY %18105    G_STORE %28, %0 :: (volatile store (s32), addrspace 1)106    %29:vgpr(s32) = COPY %19107    G_STORE %29, %0 :: (volatile store (s32), addrspace 1)108    %30:vgpr(s32) = COPY %20109    G_STORE %30, %0 :: (volatile store (s32), addrspace 1)110    %31:vgpr(s32) = COPY %21111    G_STORE %31, %0 :: (volatile store (s32), addrspace 1)112    %32:vgpr(s32) = COPY %22113    G_STORE %32, %0 :: (volatile store (s32), addrspace 1)114    %33:vgpr(s32) = COPY %23115    G_STORE %33, %0 :: (volatile store (s32), addrspace 1)116    %34:vgpr(s32) = COPY %24117    G_STORE %34, %0 :: (volatile store (s32), addrspace 1)118 119...120---121name:            icmp_s32_v_mix122legalized:       true123regBankSelected: true124 125# GCN-LABEL: name: icmp_s32_v_mix126# GCN: [[VGPR2:%[0-9]+]]:vgpr_32 = COPY $vgpr2127# GCN: [[VGPR3:%[0-9]+]]:vgpr_32 = COPY $vgpr3128# GCN: [[VGPR4:%[0-9]+]]:vgpr_32 = COPY $vgpr4129# GCN: [[VGPR5:%[0-9]+]]:vgpr_32 = COPY $vgpr5130# GCN: [[VGPR6:%[0-9]+]]:vgpr_32 = COPY $vgpr6131# GCN: [[VGPR7:%[0-9]+]]:vgpr_32 = COPY $vgpr7132# GCN: [[VGPR8:%[0-9]+]]:vgpr_32 = COPY $vgpr8133# GCN: [[VGPR9:%[0-9]+]]:vgpr_32 = COPY $vgpr9134# GCN: [[COND0:%[0-9]+]]:[[VCCRC]] = V_CMP_NE_U32_e64 [[VGPR2]], [[VGPR3]]135# GCN: [[COND1:%[0-9]+]]:[[VCCRC]] = V_CMP_NE_U32_e64 [[VGPR6]], [[VGPR7]]136# GCN: V_CNDMASK_B32_e64 0, [[VGPR9]], 0, [[VGPR8]], [[COND0]]137# GCN: V_CNDMASK_B32_e64 0, [[VGPR5]], 0, [[VGPR4]], [[COND1]]138 139body: |140  bb.0:141    liveins: $vgpr0_vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9142 143    %0:vgpr(p1) = COPY $vgpr0_vgpr1144    %1:vgpr(s32) = COPY $vgpr2145    %2:vgpr(s32) = COPY $vgpr3146    %3:vgpr(s32) = COPY $vgpr4147    %4:vgpr(s32) = COPY $vgpr5148    %5:vgpr(s32) = COPY $vgpr6149    %6:vgpr(s32) = COPY $vgpr7150    %7:vgpr(s32) = COPY $vgpr8151    %8:vgpr(s32) = COPY $vgpr9152    %9:vcc(s1) = G_ICMP intpred(ne), %1, %2153    %10:vcc(s1) = G_ICMP intpred(ne), %5, %6154    %11:vgpr(s32) = G_SELECT %9, %7, %8155    %12:vgpr(s32) = G_SELECT %10, %3, %4156    G_STORE %11, %0 :: (volatile store (s32), addrspace 1)157    G_STORE %12, %0 :: (volatile store (s32), addrspace 1)158...159---160name:            icmp_s32_valu161legalized:       true162regBankSelected: true163 164# GCN-LABEL: name: icmp_s32_valu165# GCN: V_CMP_NE_U32_e64166# GCN: V_CMP_EQ_U32_e64167# GCN: V_CMP_GT_I32_e64168# GCN: V_CMP_GE_I32_e64169# GCN: V_CMP_LT_I32_e64170# GCN: V_CMP_LE_I32_e64171# GCN: V_CMP_GT_U32_e64172# GCN: V_CMP_GE_U32_e64173# GCN: V_CMP_LT_U32_e64174# GCN: V_CMP_LE_U32_e64175 176body: |177  bb.0:178    liveins: $vgpr0_vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5179 180    %0:vgpr(p1) = COPY $vgpr0_vgpr1181    %1:vgpr(s32) = COPY $vgpr2182    %2:vgpr(s32) = COPY $vgpr3183    %3:vgpr(s32) = COPY $vgpr4184    %4:vgpr(s32) = COPY $vgpr5185    %5:vcc(s1) = G_ICMP intpred(ne), %1, %2186    %6:vcc(s1) = G_ICMP intpred(eq), %1, %2187    %7:vcc(s1) = G_ICMP intpred(sgt), %1, %2188    %8:vcc(s1) = G_ICMP intpred(sge), %1, %2189    %9:vcc(s1) = G_ICMP intpred(slt), %1, %2190    %10:vcc(s1) = G_ICMP intpred(sle), %1, %2191    %11:vcc(s1) = G_ICMP intpred(ugt), %1, %2192    %12:vcc(s1) = G_ICMP intpred(uge), %1, %2193    %13:vcc(s1) = G_ICMP intpred(ult), %1, %2194    %14:vcc(s1) = G_ICMP intpred(ule), %1, %2195    %15:vgpr(s32) = G_SELECT %5, %3, %4196    %16:vgpr(s32) = G_SELECT %6, %3, %4197    %17:vgpr(s32) = G_SELECT %7, %3, %4198    %18:vgpr(s32) = G_SELECT %8, %3, %4199    %19:vgpr(s32) = G_SELECT %9, %3, %4200    %20:vgpr(s32) = G_SELECT %10, %3, %4201    %21:vgpr(s32) = G_SELECT %11, %3, %4202    %22:vgpr(s32) = G_SELECT %12, %3, %4203    %23:vgpr(s32) = G_SELECT %13, %3, %4204    %24:vgpr(s32) = G_SELECT %14, %3, %4205    G_STORE %15, %0 :: (volatile store (s32), addrspace 1)206    G_STORE %16, %0 :: (volatile store (s32), addrspace 1)207    G_STORE %17, %0 :: (volatile store (s32), addrspace 1)208    G_STORE %18, %0 :: (volatile store (s32), addrspace 1)209    G_STORE %19, %0 :: (volatile store (s32), addrspace 1)210    G_STORE %20, %0 :: (volatile store (s32), addrspace 1)211    G_STORE %21, %0 :: (volatile store (s32), addrspace 1)212    G_STORE %22, %0 :: (volatile store (s32), addrspace 1)213    G_STORE %23, %0 :: (volatile store (s32), addrspace 1)214    G_STORE %24, %0 :: (volatile store (s32), addrspace 1)215...216---217 218name:            icmp_s32_vv219legalized:       true220regBankSelected: true221 222# GCN-LABEL: name: icmp_s32_vv223# GCN: [[VGPR2:%[0-9]+]]:vgpr_32 = COPY $vgpr2224# GCN: [[VGPR3:%[0-9]+]]:vgpr_32 = COPY $vgpr3225# GCN: V_CMP_NE_U32_e64 [[VGPR2]], [[VGPR3]]226 227body: |228  bb.0:229    liveins:  $vgpr0_vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5230 231    %0:vgpr(p1) = COPY $vgpr0_vgpr1232    %1:vgpr(s32) = COPY $vgpr2233    %2:vgpr(s32) = COPY $vgpr3234    %3:vgpr(s32) = COPY $vgpr4235    %4:vgpr(s32) = COPY $vgpr5236    %5:vcc(s1) = G_ICMP intpred(ne), %1, %2237    %6:vgpr(s32) = G_SELECT %5, %3, %4238    G_STORE %6, %0 :: (store (s32), addrspace 1)239...240---241 242name:            icmp_s32_vs243legalized:       true244regBankSelected: true245 246# GCN-LABEL: name: icmp_s32_vs247# GCN: [[VGPR2:%[0-9]+]]:vgpr_32 = COPY $vgpr2248# GCN: [[SGPR0:%[0-9]+]]:sreg_32 = COPY $sgpr0249# GCN: V_CMP_NE_U32_e64 [[VGPR2]], [[SGPR0]]250 251body: |252  bb.0:253    liveins:  $vgpr0_vgpr1, $vgpr2, $vgpr3, $vgpr4, $sgpr0254 255    %0:vgpr(p1) = COPY $vgpr0_vgpr1256    %1:vgpr(s32) = COPY $vgpr2257    %2:vgpr(s32) = COPY $vgpr3258    %3:vgpr(s32) = COPY $vgpr4259    %4:sgpr(s32) = COPY $sgpr0260    %5:vcc(s1) = G_ICMP intpred(ne), %1, %4261    %6:vgpr(s32) = G_SELECT %5, %2, %3262    G_STORE %6, %0 :: (store (s32), addrspace 1)263...264---265 266name:            icmp_s32_sv267legalized:       true268regBankSelected: true269 270# GCN-LABEL: name: icmp_s32_sv271# GCN: [[VGPR2:%[0-9]+]]:vgpr_32 = COPY $vgpr2272# GCN: [[SGPR0:%[0-9]+]]:sreg_32 = COPY $sgpr0273# GCN: V_CMP_NE_U32_e64 [[SGPR0]], [[VGPR2]]274 275body: |276  bb.0:277    liveins:  $vgpr0_vgpr1, $vgpr2, $vgpr3, $vgpr4, $sgpr0278 279    %0:vgpr(p1) = COPY $vgpr0_vgpr1280    %1:vgpr(s32) = COPY $vgpr2281    %2:vgpr(s32) = COPY $vgpr3282    %3:vgpr(s32) = COPY $vgpr4283    %4:sgpr(s32) = COPY $sgpr0284    %5:vcc(s1) = G_ICMP intpred(ne), %4, %1285    %6:vgpr(s32) = G_SELECT %5, %2, %3286    G_STORE %6, %0 :: (store (s32), addrspace 1)287...288---289 290name:            icmp_s32_or_vcc291legalized:       true292regBankSelected: true293 294# GCN-LABEL: name: icmp_s32_or_vcc295# GCN: [[VGPR2:%[0-9]+]]:vgpr_32 = COPY $vgpr2296# GCN: [[SGPR0:%[0-9]+]]:sreg_32 = COPY $sgpr0297# GCN: V_CMP_NE_U32_e64 [[SGPR0]], [[VGPR2]]298 299body: |300  bb.0:301    liveins:  $vgpr0_vgpr1, $vgpr2, $vgpr3, $vgpr4, $sgpr0302 303    %0:vgpr(p1) = COPY $vgpr0_vgpr1304    %1:vgpr(s32) = COPY $vgpr2305    %2:vgpr(s32) = COPY $vgpr3306    %3:vgpr(s32) = COPY $vgpr4307    %4:sgpr(s32) = COPY $sgpr0308    %5:vcc(s1) = G_ICMP intpred(ne), %4, %1309    %6:vgpr(s32) = G_SELECT %5, %2, %3310    G_STORE %6, %0 :: (store (s32), addrspace 1)311...312 313---314 315name:            icmp_eq_ne_p3_ss316legalized:       true317regBankSelected: true318 319# GCN-LABEL: name: icmp_eq_ne_p3_ss320# GCN: S_CMP_EQ_U32 %0, %1, implicit-def $scc321# GCN: S_CMP_LG_U32 %0, %1, implicit-def $scc322 323body: |324  bb.0:325    liveins:  $sgpr0, $sgpr1326 327    %0:sgpr(p3) = COPY $sgpr0328    %1:sgpr(p3) = COPY $sgpr1329    %2:sgpr(s32) = G_ICMP intpred(eq), %0, %1330    %3:sgpr(s32) = G_ICMP intpred(ne), %0, %1331    S_ENDPGM 0, implicit %2, implicit %3332 333...334 335---336 337name:            icmp_eq_ne_p3_vv338legalized:       true339regBankSelected: true340 341# GCN-LABEL: name: icmp_eq_ne_p3_vv342# GCN: %2:[[VCCRC]] = V_CMP_EQ_U32_e64 %0, %1, implicit $exec343# GCN: %3:[[VCCRC]] = V_CMP_NE_U32_e64 %0, %1, implicit $exec344 345body: |346  bb.0:347    liveins:  $vgpr0, $vgpr1348 349    %0:vgpr(p3) = COPY $vgpr0350    %1:vgpr(p3) = COPY $vgpr1351    %2:vcc(s1) = G_ICMP intpred(eq), %0, %1352    %3:vcc(s1) = G_ICMP intpred(ne), %0, %1353    %4:vgpr(s1) = COPY %2354    %5:vgpr(s1) = COPY %3355    %6:vgpr(s32) = G_SEXT %4356    %7:vgpr(s32) = G_SEXT %5357    S_ENDPGM 0, implicit %6, implicit %7358 359...360