brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.9 KiB · e6510ac Raw
181 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=tahiti -run-pass=instruction-select -verify-machineinstrs -o - %s  | FileCheck -check-prefix=WAVE64 %s3# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=instruction-select -verify-machineinstrs -o - %s  | FileCheck -check-prefix=WAVE64 %s4# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=instruction-select -verify-machineinstrs -o - %s  | FileCheck -check-prefix=WAVE64 %s5# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs -o - %s  | FileCheck -check-prefix=WAVE32 %s6# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -verify-machineinstrs -o - %s  | FileCheck -check-prefix=WAVE32 %s7 8---9name: uadde_s32_s1_sss10legalized: true11regBankSelected: true12 13body: |14  bb.0:15    liveins: $sgpr0, $sgpr1, $sgpr216 17    ; WAVE64-LABEL: name: uadde_s32_s1_sss18    ; WAVE64: liveins: $sgpr0, $sgpr1, $sgpr219    ; WAVE64-NEXT: {{  $}}20    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr021    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr122    ; WAVE64-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $sgpr223    ; WAVE64-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 024    ; WAVE64-NEXT: S_CMP_EQ_U32 [[COPY2]], [[S_MOV_B32_]], implicit-def $scc25    ; WAVE64-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY $scc26    ; WAVE64-NEXT: $scc = COPY [[COPY3]]27    ; WAVE64-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $scc28    ; WAVE64-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY $scc29    ; WAVE64-NEXT: $scc = COPY [[COPY4]]30    ; WAVE64-NEXT: [[S_CSELECT_B32_:%[0-9]+]]:sreg_32 = S_CSELECT_B32 [[COPY]], [[COPY1]], implicit $scc31    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[S_ADDC_U32_]], implicit [[S_CSELECT_B32_]]32    ;33    ; WAVE32-LABEL: name: uadde_s32_s1_sss34    ; WAVE32: liveins: $sgpr0, $sgpr1, $sgpr235    ; WAVE32-NEXT: {{  $}}36    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr037    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr138    ; WAVE32-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $sgpr239    ; WAVE32-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 040    ; WAVE32-NEXT: S_CMP_EQ_U32 [[COPY2]], [[S_MOV_B32_]], implicit-def $scc41    ; WAVE32-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY $scc42    ; WAVE32-NEXT: $scc = COPY [[COPY3]]43    ; WAVE32-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $scc44    ; WAVE32-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY $scc45    ; WAVE32-NEXT: $scc = COPY [[COPY4]]46    ; WAVE32-NEXT: [[S_CSELECT_B32_:%[0-9]+]]:sreg_32 = S_CSELECT_B32 [[COPY]], [[COPY1]], implicit $scc47    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[S_ADDC_U32_]], implicit [[S_CSELECT_B32_]]48    %0:sgpr(s32) = COPY $sgpr049    %1:sgpr(s32) = COPY $sgpr150    %2:sgpr(s32) = COPY $sgpr251    %3:sgpr(s32) = G_CONSTANT i32 052    %4:sgpr(s32) = G_ICMP intpred(eq), %2, %353    %5:sgpr(s32), %6:sgpr(s32) = G_UADDE %0, %1, %454    %7:sgpr(s32) = G_SELECT %6, %0, %155    S_ENDPGM 0, implicit %5, implicit %756...57 58---59name: uadde_s32_s1_vvv60legalized: true61regBankSelected: true62 63body: |64  bb.0:65    liveins: $vgpr0, $vgpr1, $vgpr266 67    ; WAVE64-LABEL: name: uadde_s32_s1_vvv68    ; WAVE64: liveins: $vgpr0, $vgpr1, $vgpr269    ; WAVE64-NEXT: {{  $}}70    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr071    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr172    ; WAVE64-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr273    ; WAVE64-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec74    ; WAVE64-NEXT: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[COPY2]], [[V_MOV_B32_e32_]], implicit $exec75    ; WAVE64-NEXT: [[V_ADDC_U32_e64_:%[0-9]+]]:vgpr_32, [[V_ADDC_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADDC_U32_e64 [[COPY]], [[COPY1]], [[V_CMP_EQ_U32_e64_]], 0, implicit $exec76    ; WAVE64-NEXT: [[V_CNDMASK_B32_e64_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 0, [[COPY1]], 0, [[COPY]], [[V_ADDC_U32_e64_1]], implicit $exec77    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_ADDC_U32_e64_]], implicit [[V_CNDMASK_B32_e64_]]78    ;79    ; WAVE32-LABEL: name: uadde_s32_s1_vvv80    ; WAVE32: liveins: $vgpr0, $vgpr1, $vgpr281    ; WAVE32-NEXT: {{  $}}82    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr083    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr184    ; WAVE32-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr285    ; WAVE32-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec86    ; WAVE32-NEXT: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_32_xm0_xexec = V_CMP_EQ_U32_e64 [[COPY2]], [[V_MOV_B32_e32_]], implicit $exec87    ; WAVE32-NEXT: [[V_ADDC_U32_e64_:%[0-9]+]]:vgpr_32, [[V_ADDC_U32_e64_1:%[0-9]+]]:sreg_32_xm0_xexec = V_ADDC_U32_e64 [[COPY]], [[COPY1]], [[V_CMP_EQ_U32_e64_]], 0, implicit $exec88    ; WAVE32-NEXT: [[V_CNDMASK_B32_e64_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 0, [[COPY1]], 0, [[COPY]], [[V_ADDC_U32_e64_1]], implicit $exec89    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_ADDC_U32_e64_]], implicit [[V_CNDMASK_B32_e64_]]90    %0:vgpr(s32) = COPY $vgpr091    %1:vgpr(s32) = COPY $vgpr192    %2:vgpr(s32) = COPY $vgpr293    %3:vgpr(s32) = G_CONSTANT i32 094    %4:vcc(s1) = G_ICMP intpred(eq), %2, %395    %5:vgpr(s32), %6:vcc(s1) = G_UADDE %0, %1, %496    %7:vgpr(s32) = G_SELECT %6, %0, %197    S_ENDPGM 0, implicit %5, implicit %798...99 100---101name: uadde_s32_s1_sss_unused_co102legalized: true103regBankSelected: true104 105body: |106  bb.0:107    liveins: $sgpr0, $sgpr1, $sgpr2108 109    ; WAVE64-LABEL: name: uadde_s32_s1_sss_unused_co110    ; WAVE64: liveins: $sgpr0, $sgpr1, $sgpr2111    ; WAVE64-NEXT: {{  $}}112    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0113    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1114    ; WAVE64-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $sgpr2115    ; WAVE64-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 0116    ; WAVE64-NEXT: S_CMP_EQ_U32 [[COPY2]], [[S_MOV_B32_]], implicit-def $scc117    ; WAVE64-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY $scc118    ; WAVE64-NEXT: $scc = COPY [[COPY3]]119    ; WAVE64-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY]], [[COPY1]], implicit-def dead $scc, implicit $scc120    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[S_ADDC_U32_]]121    ;122    ; WAVE32-LABEL: name: uadde_s32_s1_sss_unused_co123    ; WAVE32: liveins: $sgpr0, $sgpr1, $sgpr2124    ; WAVE32-NEXT: {{  $}}125    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0126    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1127    ; WAVE32-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $sgpr2128    ; WAVE32-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 0129    ; WAVE32-NEXT: S_CMP_EQ_U32 [[COPY2]], [[S_MOV_B32_]], implicit-def $scc130    ; WAVE32-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY $scc131    ; WAVE32-NEXT: $scc = COPY [[COPY3]]132    ; WAVE32-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY]], [[COPY1]], implicit-def dead $scc, implicit $scc133    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[S_ADDC_U32_]]134    %0:sgpr(s32) = COPY $sgpr0135    %1:sgpr(s32) = COPY $sgpr1136    %2:sgpr(s32) = COPY $sgpr2137    %3:sgpr(s32) = G_CONSTANT i32 0138    %4:sgpr(s32) = G_ICMP intpred(eq), %2, %3139    %5:sgpr(s32), %6:sgpr(s32) = G_UADDE %0, %1, %4140    S_ENDPGM 0, implicit %5141...142 143---144name: uadde_s32_s1_vvv_unused_co145legalized: true146regBankSelected: true147 148body: |149  bb.0:150    liveins: $vgpr0, $vgpr1, $vgpr2151 152    ; WAVE64-LABEL: name: uadde_s32_s1_vvv_unused_co153    ; WAVE64: liveins: $vgpr0, $vgpr1, $vgpr2154    ; WAVE64-NEXT: {{  $}}155    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0156    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1157    ; WAVE64-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2158    ; WAVE64-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec159    ; WAVE64-NEXT: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[COPY2]], [[V_MOV_B32_e32_]], implicit $exec160    ; WAVE64-NEXT: [[V_ADDC_U32_e64_:%[0-9]+]]:vgpr_32, [[V_ADDC_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADDC_U32_e64 [[COPY]], [[COPY1]], [[V_CMP_EQ_U32_e64_]], 0, implicit $exec161    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_ADDC_U32_e64_]]162    ;163    ; WAVE32-LABEL: name: uadde_s32_s1_vvv_unused_co164    ; WAVE32: liveins: $vgpr0, $vgpr1, $vgpr2165    ; WAVE32-NEXT: {{  $}}166    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0167    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1168    ; WAVE32-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2169    ; WAVE32-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec170    ; WAVE32-NEXT: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_32_xm0_xexec = V_CMP_EQ_U32_e64 [[COPY2]], [[V_MOV_B32_e32_]], implicit $exec171    ; WAVE32-NEXT: [[V_ADDC_U32_e64_:%[0-9]+]]:vgpr_32, [[V_ADDC_U32_e64_1:%[0-9]+]]:sreg_32_xm0_xexec = V_ADDC_U32_e64 [[COPY]], [[COPY1]], [[V_CMP_EQ_U32_e64_]], 0, implicit $exec172    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_ADDC_U32_e64_]]173    %0:vgpr(s32) = COPY $vgpr0174    %1:vgpr(s32) = COPY $vgpr1175    %2:vgpr(s32) = COPY $vgpr2176    %3:vgpr(s32) = G_CONSTANT i32 0177    %4:vcc(s1) = G_ICMP intpred(eq), %2, %3178    %5:vgpr(s32), %6:vcc(s1) = G_UADDE %0, %1, %4179    S_ENDPGM 0, implicit %5180...181