11# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2- # RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=amdgpu-prelegalizer-combiner -verify-machineinstrs %s -o - | FileCheck -check-prefix=GCN %s
2+ # RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=amdgpu-prelegalizer-combiner %s -o - | FileCheck -check-prefixes=GCN,PRELEGAL %s
3+ # RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=amdgpu-regbank-combiner %s -o - | FileCheck -check-prefixes=GCN,RBCOMB %s
34
45---
56name : trunc_sext_i32_i16
@@ -65,12 +66,20 @@ body: |
6566 bb.0:
6667 liveins: $vgpr0_vgpr1_vgpr2_vgpr3
6768
68- ; GCN-LABEL: name: trunc_sext_v4i32_v4i16
69- ; GCN: liveins: $vgpr0_vgpr1_vgpr2_vgpr3
70- ; GCN-NEXT: {{ $}}
71- ; GCN-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
72- ; GCN-NEXT: [[SEXT_INREG:%[0-9]+]]:_(<4 x s32>) = G_SEXT_INREG [[COPY]], 16
73- ; GCN-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[SEXT_INREG]](<4 x s32>)
69+ ; PRELEGAL-LABEL: name: trunc_sext_v4i32_v4i16
70+ ; PRELEGAL: liveins: $vgpr0_vgpr1_vgpr2_vgpr3
71+ ; PRELEGAL-NEXT: {{ $}}
72+ ; PRELEGAL-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
73+ ; PRELEGAL-NEXT: [[SEXT_INREG:%[0-9]+]]:_(<4 x s32>) = G_SEXT_INREG [[COPY]], 16
74+ ; PRELEGAL-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[SEXT_INREG]](<4 x s32>)
75+ ;
76+ ; RBCOMB-LABEL: name: trunc_sext_v4i32_v4i16
77+ ; RBCOMB: liveins: $vgpr0_vgpr1_vgpr2_vgpr3
78+ ; RBCOMB-NEXT: {{ $}}
79+ ; RBCOMB-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
80+ ; RBCOMB-NEXT: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[COPY]](<4 x s32>)
81+ ; RBCOMB-NEXT: [[SEXT:%[0-9]+]]:_(<4 x s32>) = G_SEXT [[TRUNC]](<4 x s16>)
82+ ; RBCOMB-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[SEXT]](<4 x s32>)
7483 %0:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
7584 %1:_(<4 x s16>) = G_TRUNC %0
7685 %2:_(<4 x s32>) = G_SEXT %1
@@ -84,12 +93,20 @@ body: |
8493 bb.0:
8594 liveins: $vgpr0_vgpr1
8695
87- ; GCN-LABEL: name: trunc_sext_v4i16_v4i8
88- ; GCN: liveins: $vgpr0_vgpr1
89- ; GCN-NEXT: {{ $}}
90- ; GCN-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $vgpr0_vgpr1
91- ; GCN-NEXT: [[SEXT_INREG:%[0-9]+]]:_(<4 x s16>) = G_SEXT_INREG [[COPY]], 8
92- ; GCN-NEXT: $vgpr0_vgpr1 = COPY [[SEXT_INREG]](<4 x s16>)
96+ ; PRELEGAL-LABEL: name: trunc_sext_v4i16_v4i8
97+ ; PRELEGAL: liveins: $vgpr0_vgpr1
98+ ; PRELEGAL-NEXT: {{ $}}
99+ ; PRELEGAL-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $vgpr0_vgpr1
100+ ; PRELEGAL-NEXT: [[SEXT_INREG:%[0-9]+]]:_(<4 x s16>) = G_SEXT_INREG [[COPY]], 8
101+ ; PRELEGAL-NEXT: $vgpr0_vgpr1 = COPY [[SEXT_INREG]](<4 x s16>)
102+ ;
103+ ; RBCOMB-LABEL: name: trunc_sext_v4i16_v4i8
104+ ; RBCOMB: liveins: $vgpr0_vgpr1
105+ ; RBCOMB-NEXT: {{ $}}
106+ ; RBCOMB-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $vgpr0_vgpr1
107+ ; RBCOMB-NEXT: [[TRUNC:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[COPY]](<4 x s16>)
108+ ; RBCOMB-NEXT: [[SEXT:%[0-9]+]]:_(<4 x s16>) = G_SEXT [[TRUNC]](<4 x s8>)
109+ ; RBCOMB-NEXT: $vgpr0_vgpr1 = COPY [[SEXT]](<4 x s16>)
93110 %0:_(<4 x s16>) = COPY $vgpr0_vgpr1
94111 %1:_(<4 x s8>) = G_TRUNC %0
95112 %2:_(<4 x s16>) = G_SEXT %1
0 commit comments