1
1
# 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
3
4
4
5
---
5
6
name : trunc_sext_i32_i16
@@ -65,12 +66,20 @@ body: |
65
66
bb.0:
66
67
liveins: $vgpr0_vgpr1_vgpr2_vgpr3
67
68
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>)
74
83
%0:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
75
84
%1:_(<4 x s16>) = G_TRUNC %0
76
85
%2:_(<4 x s32>) = G_SEXT %1
@@ -84,12 +93,20 @@ body: |
84
93
bb.0:
85
94
liveins: $vgpr0_vgpr1
86
95
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>)
93
110
%0:_(<4 x s16>) = COPY $vgpr0_vgpr1
94
111
%1:_(<4 x s8>) = G_TRUNC %0
95
112
%2:_(<4 x s16>) = G_SEXT %1
0 commit comments