1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -O0 -run-pass=legalizer %s -o - | FileCheck %s
3
4---
5name: test_sext_trunc_i64_i32_i64
6body: |
7  bb.0:
8    liveins: $vgpr0_vgpr1
9
10    ; CHECK-LABEL: name: test_sext_trunc_i64_i32_i64
11    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1
12    ; CHECK: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 32
13    ; CHECK: $vgpr0_vgpr1 = COPY [[SEXT_INREG]](s64)
14    %0:_(s64) = COPY $vgpr0_vgpr1
15    %1:_(s32) = G_TRUNC %0
16    %2:_(s64) = G_SEXT %1
17    $vgpr0_vgpr1 = COPY %2
18...
19
20---
21name: test_zext_trunc_i64_i32_i64
22body: |
23  bb.0:
24    liveins: $vgpr0_vgpr1
25
26    ; CHECK-LABEL: name: test_zext_trunc_i64_i32_i64
27    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1
28    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4294967295
29    ; CHECK: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]
30    ; CHECK: $vgpr0_vgpr1 = COPY [[AND]](s64)
31    %0:_(s64) = COPY $vgpr0_vgpr1
32    %1:_(s32) = G_TRUNC %0
33    %2:_(s64) = G_ZEXT %1
34    $vgpr0_vgpr1 = COPY %2
35...
36
37---
38name: test_zext_zext_i32_i48_i64
39body: |
40  bb.0:
41    liveins: $vgpr0_vgpr1
42
43    ; CHECK-LABEL: name: test_zext_zext_i32_i48_i64
44    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
45    ; CHECK: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY]](s32)
46    ; CHECK: $vgpr0_vgpr1 = COPY [[ZEXT]](s64)
47    %0:_(s32) = COPY $vgpr0
48    %1:_(s48) = G_ZEXT %0
49    %2:_(s64) = G_ZEXT %1
50    $vgpr0_vgpr1 = COPY %2
51...
52
53---
54name: test_sext_zext_i32_i48_i64
55body: |
56  bb.0:
57    liveins: $vgpr0_vgpr1
58
59    ; CHECK-LABEL: name: test_sext_zext_i32_i48_i64
60    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
61    ; CHECK: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY]](s32)
62    ; CHECK: $vgpr0_vgpr1 = COPY [[ZEXT]](s64)
63    %0:_(s32) = COPY $vgpr0
64    %1:_(s48) = G_ZEXT %0
65    %2:_(s64) = G_SEXT %1
66    $vgpr0_vgpr1 = COPY %2
67...
68
69---
70name: test_sext_sext_i32_i48_i64
71body: |
72  bb.0:
73    liveins: $vgpr0_vgpr1
74
75    ; CHECK-LABEL: name: test_sext_sext_i32_i48_i64
76    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
77    ; CHECK: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[COPY]](s32)
78    ; CHECK: $vgpr0_vgpr1 = COPY [[SEXT]](s64)
79    %0:_(s32) = COPY $vgpr0
80    %1:_(s48) = G_SEXT %0
81    %2:_(s64) = G_SEXT %1
82    $vgpr0_vgpr1 = COPY %2
83...
84