Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / GlobalISel / artifact-combiner-anyext.mir
blob4fccde95f3da7e4f62bd522bb49d21eb30d15db2
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -O0 -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=legalizer %s -o - | FileCheck %s
4 ---
5 name: test_anyext_trunc_v2s32_to_v2s16_to_v2s32
6 body: |
7   bb.0:
8     liveins: $vgpr0_vgpr1
10     ; CHECK-LABEL: name: test_anyext_trunc_v2s32_to_v2s16_to_v2s32
11     ; CHECK: liveins: $vgpr0_vgpr1
12     ; CHECK-NEXT: {{  $}}
13     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr1
14     ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[COPY]](<2 x s32>)
15     %0:_(<2 x s32>) = COPY $vgpr0_vgpr1
16     %1:_(<2 x s16>) = G_TRUNC %0
17     %2:_(<2 x s32>) = G_ANYEXT %1
18     $vgpr0_vgpr1 = COPY %2
19 ...
21 ---
22 name: test_anyext_trunc_v2s32_to_v2s16_to_v2s64
23 body: |
24   bb.0:
25     liveins: $vgpr0_vgpr1
27     ; CHECK-LABEL: name: test_anyext_trunc_v2s32_to_v2s16_to_v2s64
28     ; CHECK: liveins: $vgpr0_vgpr1
29     ; CHECK-NEXT: {{  $}}
30     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr1
31     ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)
32     ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[UV]](s32)
33     ; CHECK-NEXT: [[ANYEXT1:%[0-9]+]]:_(s64) = G_ANYEXT [[UV1]](s32)
34     ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[ANYEXT]](s64), [[ANYEXT1]](s64)
35     ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x s64>)
36     %0:_(<2 x s32>) = COPY $vgpr0_vgpr1
37     %1:_(<2 x s16>) = G_TRUNC %0
38     %2:_(<2 x s64>) = G_ANYEXT %1
39     $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %2
40 ...
42 ---
43 name: test_anyext_trunc_v2s32_to_v2s8_to_v2s16
44 body: |
45   bb.0:
46     liveins: $vgpr0_vgpr1
48     ; CHECK-LABEL: name: test_anyext_trunc_v2s32_to_v2s8_to_v2s16
49     ; CHECK: liveins: $vgpr0_vgpr1
50     ; CHECK-NEXT: {{  $}}
51     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr1
52     ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(<2 x s16>) = G_TRUNC [[COPY]](<2 x s32>)
53     ; CHECK-NEXT: $vgpr0 = COPY [[TRUNC]](<2 x s16>)
54     %0:_(<2 x s32>) = COPY $vgpr0_vgpr1
55     %1:_(<2 x s8>) = G_TRUNC %0
56     %2:_(<2 x s16>) = G_ANYEXT %1
57     $vgpr0 = COPY %2
58 ...
60 ---
61 name: test_anyext_trunc_v3s32_to_v3s16_to_v3s32
62 body: |
63   bb.0:
64     liveins: $vgpr0_vgpr1_vgpr2
66     ; CHECK-LABEL: name: test_anyext_trunc_v3s32_to_v3s16_to_v3s32
67     ; CHECK: liveins: $vgpr0_vgpr1_vgpr2
68     ; CHECK-NEXT: {{  $}}
69     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2
70     ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[COPY]](<3 x s32>)
71     %0:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2
72     %1:_(<3 x s16>) = G_TRUNC %0
73     %2:_(<3 x s32>) = G_ANYEXT %1
74     $vgpr0_vgpr1_vgpr2 = COPY %2
75 ...