[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / AMDGPU / GlobalISel / legalize-sextload-private.mir
blob53d4d0d48da18a8f2015c12f2ee607ef7804fff4
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=legalizer -o - %s | FileCheck %s
3 # RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=legalizer -o - %s | FileCheck %s
5 ---
6 name: test_sextload_private_i32_i8
7 body: |
8   bb.0:
9     liveins: $vgpr0
11     ; CHECK-LABEL: name: test_sextload_private_i32_i8
12     ; CHECK: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
13     ; CHECK: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p5) :: (load 1, addrspace 5)
14     ; CHECK: $vgpr0 = COPY [[SEXTLOAD]](s32)
15     %0:_(p5) = COPY $vgpr0
16     %1:_(s32) = G_SEXTLOAD %0 :: (load 1, addrspace 5)
18     $vgpr0 = COPY %1
19 ...
20 ---
21 name: test_sextload_private_i32_i16
22 body: |
23   bb.0:
24     liveins: $vgpr0
26     ; CHECK-LABEL: name: test_sextload_private_i32_i16
27     ; CHECK: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
28     ; CHECK: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p5) :: (load 2, addrspace 5)
29     ; CHECK: $vgpr0 = COPY [[SEXTLOAD]](s32)
30     %0:_(p5) = COPY $vgpr0
31     %1:_(s32) = G_SEXTLOAD %0 :: (load 2, addrspace 5)
32     $vgpr0 = COPY %1
33 ...
34 ---
35 name: test_sextload_private_i31_i8
36 body: |
37   bb.0:
38     liveins: $vgpr0
40     ; CHECK-LABEL: name: test_sextload_private_i31_i8
41     ; CHECK: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
42     ; CHECK: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p5) :: (load 1, addrspace 5)
43     ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY [[SEXTLOAD]](s32)
44     ; CHECK: $vgpr0 = COPY [[COPY1]](s32)
45     %0:_(p5) = COPY $vgpr0
46     %1:_(s31) = G_SEXTLOAD %0 :: (load 1, addrspace 5)
47     %2:_(s32) = G_ANYEXT %1
48     $vgpr0 = COPY %2
49 ...
50 ---
51 name: test_sextload_private_i64_i8
52 body: |
53   bb.0:
54     liveins: $vgpr0
56     ; CHECK-LABEL: name: test_sextload_private_i64_i8
57     ; CHECK: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
58     ; CHECK: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p5) :: (load 1, addrspace 5)
59     ; CHECK: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[SEXTLOAD]](s32)
60     ; CHECK: $vgpr0_vgpr1 = COPY [[SEXT]](s64)
61     %0:_(p5) = COPY $vgpr0
62     %1:_(s64) = G_SEXTLOAD %0 :: (load 1, addrspace 5)
63     $vgpr0_vgpr1 = COPY %1
64 ...
65 ---
66 name: test_sextload_private_i64_i16
67 body: |
68   bb.0:
69     liveins: $vgpr0
71     ; CHECK-LABEL: name: test_sextload_private_i64_i16
72     ; CHECK: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
73     ; CHECK: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p5) :: (load 2, addrspace 5)
74     ; CHECK: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[SEXTLOAD]](s32)
75     ; CHECK: $vgpr0_vgpr1 = COPY [[SEXT]](s64)
76     %0:_(p5) = COPY $vgpr0
77     %1:_(s64) = G_SEXTLOAD %0 :: (load 2, addrspace 5)
78     $vgpr0_vgpr1 = COPY %1
79 ...
80 ---
81 name: test_sextload_private_i64_i32
82 body: |
83   bb.0:
84     liveins: $vgpr0_vgpr1
86     ; CHECK-LABEL: name: test_sextload_private_i64_i32
87     ; CHECK: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
88     ; CHECK: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
89     ; CHECK: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[LOAD]](s32)
90     ; CHECK: $vgpr0_vgpr1 = COPY [[SEXT]](s64)
91     %0:_(p5) = COPY $vgpr0
92     %1:_(s64) = G_SEXTLOAD %0 :: (load 4, addrspace 5)
93     $vgpr0_vgpr1 = COPY %1
94 ...