189 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=amdgpu-prelegalizer-combiner -verify-machineinstrs %s -o - | FileCheck -check-prefix=GCN %s3 4---5name: add_ptrtoint_p1_to_s64_lhs6tracksRegLiveness: true7body: |8 bb.0:9 liveins: $vgpr0_vgpr1, $vgpr2_vgpr310 11 ; GCN-LABEL: name: add_ptrtoint_p1_to_s64_lhs12 ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr313 ; GCN-NEXT: {{ $}}14 ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr115 ; GCN-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr316 ; GCN-NEXT: [[PTR_ADD:%[0-9]+]]:_(p1) = G_PTR_ADD [[COPY]], [[COPY1]](s64)17 ; GCN-NEXT: [[PTRTOINT:%[0-9]+]]:_(s64) = G_PTRTOINT [[PTR_ADD]](p1)18 ; GCN-NEXT: $vgpr0_vgpr1 = COPY [[PTRTOINT]](s64)19 %0:_(p1) = COPY $vgpr0_vgpr120 %1:_(s64) = COPY $vgpr2_vgpr321 %2:_(s64) = G_PTRTOINT %022 %3:_(s64) = G_ADD %2, %123 $vgpr0_vgpr1 = COPY %324 25...26 27---28name: add_ptrtoint_p1_to_s32_lhs29tracksRegLiveness: true30body: |31 bb.0:32 liveins: $vgpr0_vgpr1, $vgpr233 34 ; GCN-LABEL: name: add_ptrtoint_p1_to_s32_lhs35 ; GCN: liveins: $vgpr0_vgpr1, $vgpr236 ; GCN-NEXT: {{ $}}37 ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr138 ; GCN-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr239 ; GCN-NEXT: [[PTRTOINT:%[0-9]+]]:_(s32) = G_PTRTOINT [[COPY]](p1)40 ; GCN-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[PTRTOINT]], [[COPY1]]41 ; GCN-NEXT: $vgpr0 = COPY [[ADD]](s32)42 %0:_(p1) = COPY $vgpr0_vgpr143 %1:_(s32) = COPY $vgpr244 %2:_(s32) = G_PTRTOINT %045 %3:_(s32) = G_ADD %2, %146 $vgpr0 = COPY %347 48...49 50---51name: add_ptrtoint_p3_to_s32_lhs52tracksRegLiveness: true53body: |54 bb.0:55 liveins: $vgpr0, $vgpr156 57 ; GCN-LABEL: name: add_ptrtoint_p3_to_s32_lhs58 ; GCN: liveins: $vgpr0, $vgpr159 ; GCN-NEXT: {{ $}}60 ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr061 ; GCN-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr162 ; GCN-NEXT: [[PTR_ADD:%[0-9]+]]:_(p3) = G_PTR_ADD [[COPY]], [[COPY1]](s32)63 ; GCN-NEXT: [[PTRTOINT:%[0-9]+]]:_(s32) = G_PTRTOINT [[PTR_ADD]](p3)64 ; GCN-NEXT: $vgpr0 = COPY [[PTRTOINT]](s32)65 %0:_(p3) = COPY $vgpr066 %1:_(s32) = COPY $vgpr167 %2:_(s32) = G_PTRTOINT %068 %3:_(s32) = G_ADD %2, %169 $vgpr0 = COPY %370 71...72 73---74name: inttoptr_add_ptrtoint_p1_to_s64_lhs75tracksRegLiveness: true76body: |77 bb.0:78 liveins: $vgpr0_vgpr1, $vgpr2_vgpr379 80 ; GCN-LABEL: name: inttoptr_add_ptrtoint_p1_to_s64_lhs81 ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr382 ; GCN-NEXT: {{ $}}83 ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr184 ; GCN-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr385 ; GCN-NEXT: [[PTR_ADD:%[0-9]+]]:_(p1) = G_PTR_ADD [[COPY]], [[COPY1]](s64)86 ; GCN-NEXT: $vgpr0_vgpr1 = COPY [[PTR_ADD]](p1)87 %0:_(p1) = COPY $vgpr0_vgpr188 %1:_(s64) = COPY $vgpr2_vgpr389 %2:_(s64) = G_PTRTOINT %090 %3:_(s64) = G_ADD %2, %191 %4:_(p1) = G_INTTOPTR %392 $vgpr0_vgpr1 = COPY %493 94...95 96---97name: add_ptrtoint_v2p3_to_v2s32_lhs98tracksRegLiveness: true99body: |100 bb.0:101 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3102 103 ; GCN-LABEL: name: add_ptrtoint_v2p3_to_v2s32_lhs104 ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3105 ; GCN-NEXT: {{ $}}106 ; GCN-NEXT: [[COPY:%[0-9]+]]:_(<2 x p3>) = COPY $vgpr0_vgpr1107 ; GCN-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr2_vgpr3108 ; GCN-NEXT: [[PTR_ADD:%[0-9]+]]:_(<2 x p3>) = G_PTR_ADD [[COPY]], [[COPY1]](<2 x s32>)109 ; GCN-NEXT: [[PTRTOINT:%[0-9]+]]:_(<2 x s32>) = G_PTRTOINT [[PTR_ADD]](<2 x p3>)110 ; GCN-NEXT: $vgpr0_vgpr1 = COPY [[PTRTOINT]](<2 x s32>)111 %0:_(<2 x p3>) = COPY $vgpr0_vgpr1112 %1:_(<2 x s32>) = COPY $vgpr2_vgpr3113 %2:_(<2 x s32>) = G_PTRTOINT %0114 %3:_(<2 x s32>) = G_ADD %2, %1115 $vgpr0_vgpr1 = COPY %3116 117...118 119---120name: add_ptrtoint_v2p1_to_v2s32_lhs121tracksRegLiveness: true122body: |123 bb.0:124 liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5125 126 ; GCN-LABEL: name: add_ptrtoint_v2p1_to_v2s32_lhs127 ; GCN: liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5128 ; GCN-NEXT: {{ $}}129 ; GCN-NEXT: [[COPY:%[0-9]+]]:_(<2 x p1>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3130 ; GCN-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr4_vgpr5131 ; GCN-NEXT: [[PTRTOINT:%[0-9]+]]:_(<2 x s32>) = G_PTRTOINT [[COPY]](<2 x p1>)132 ; GCN-NEXT: [[ADD:%[0-9]+]]:_(<2 x s32>) = G_ADD [[PTRTOINT]], [[COPY1]]133 ; GCN-NEXT: $vgpr0_vgpr1 = COPY [[ADD]](<2 x s32>)134 %0:_(<2 x p1>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3135 %1:_(<2 x s32>) = COPY $vgpr4_vgpr5136 %2:_(<2 x s32>) = G_PTRTOINT %0137 %3:_(<2 x s32>) = G_ADD %2, %1138 $vgpr0_vgpr1 = COPY %3139 140...141 142---143name: add_ptrtoint_p1_to_s64_rhs144tracksRegLiveness: true145body: |146 bb.0:147 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3148 149 ; GCN-LABEL: name: add_ptrtoint_p1_to_s64_rhs150 ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3151 ; GCN-NEXT: {{ $}}152 ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1153 ; GCN-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3154 ; GCN-NEXT: [[PTR_ADD:%[0-9]+]]:_(p1) = G_PTR_ADD [[COPY]], [[COPY1]](s64)155 ; GCN-NEXT: [[PTRTOINT:%[0-9]+]]:_(s64) = G_PTRTOINT [[PTR_ADD]](p1)156 ; GCN-NEXT: $vgpr0_vgpr1 = COPY [[PTRTOINT]](s64)157 %0:_(p1) = COPY $vgpr0_vgpr1158 %1:_(s64) = COPY $vgpr2_vgpr3159 %2:_(s64) = G_PTRTOINT %0160 %3:_(s64) = G_ADD %1, %2161 $vgpr0_vgpr1 = COPY %3162 163...164 165---166name: add_ptrtoint_p1_to_s64_lhs_rhs167tracksRegLiveness: true168body: |169 bb.0:170 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3171 172 ; GCN-LABEL: name: add_ptrtoint_p1_to_s64_lhs_rhs173 ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3174 ; GCN-NEXT: {{ $}}175 ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1176 ; GCN-NEXT: [[COPY1:%[0-9]+]]:_(p1) = COPY $vgpr2_vgpr3177 ; GCN-NEXT: [[PTRTOINT:%[0-9]+]]:_(s64) = G_PTRTOINT [[COPY1]](p1)178 ; GCN-NEXT: [[PTR_ADD:%[0-9]+]]:_(p1) = G_PTR_ADD [[COPY]], [[PTRTOINT]](s64)179 ; GCN-NEXT: [[PTRTOINT1:%[0-9]+]]:_(s64) = G_PTRTOINT [[PTR_ADD]](p1)180 ; GCN-NEXT: $vgpr0_vgpr1 = COPY [[PTRTOINT1]](s64)181 %0:_(p1) = COPY $vgpr0_vgpr1182 %1:_(p1) = COPY $vgpr2_vgpr3183 %2:_(s64) = G_PTRTOINT %0184 %3:_(s64) = G_PTRTOINT %1185 %4:_(s64) = G_ADD %2, %3186 $vgpr0_vgpr1 = COPY %4187 188...189