[AMDGPU] Make v8i16/v8f16 legal
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / GlobalISel / regbankselect-amdgcn.interp.p1.mir
blob17e941893add98125ca39ab424dc9eb0f3ad1823
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -march=amdgcn -mcpu=fiji -run-pass=regbankselect -regbankselect-fast -verify-machineinstrs -o - %s | FileCheck %s
3 # RUN: llc -march=amdgcn -mcpu=fiji -run-pass=regbankselect -regbankselect-greedy -verify-machineinstrs -o - %s | FileCheck %s
5 ---
6 name: interp_p1_ss
7 legalized: true
8 tracksRegLiveness: true
10 body: |
11   bb.0:
12     liveins: $sgpr0, $sgpr1
13     ; CHECK-LABEL: name: interp_p1_ss
14     ; CHECK: liveins: $sgpr0, $sgpr1
15     ; CHECK: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
16     ; CHECK: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
17     ; CHECK: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)
18     ; CHECK: [[INT:%[0-9]+]]:vgpr(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.interp.p1), [[COPY2]](s32), 1, 1, [[COPY1]](s32)
19     %0:_(s32) = COPY $sgpr0
20     %1:_(s32) = COPY $sgpr1
21     %2:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.interp.p1), %0, 1, 1, %1
22 ...
24 ---
25 name: interp_p1_vs
26 legalized: true
27 tracksRegLiveness: true
29 body: |
30   bb.0:
31     liveins: $vgpr0, $sgpr0
32     ; CHECK-LABEL: name: interp_p1_vs
33     ; CHECK: liveins: $vgpr0, $sgpr0
34     ; CHECK: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
35     ; CHECK: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
36     ; CHECK: [[INT:%[0-9]+]]:vgpr(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.interp.p1), [[COPY]](s32), 1, 1, [[COPY1]](s32)
37     %0:_(s32) = COPY $vgpr0
38     %1:_(s32) = COPY $sgpr0
39     %2:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.interp.p1), %0, 1, 1, %1
40 ...
42 ---
43 name: interp_p1_sv
44 legalized: true
45 tracksRegLiveness: true
47 body: |
48   bb.0:
49     liveins: $sgpr0, $vgpr0
50     ; CHECK-LABEL: name: interp_p1_sv
51     ; CHECK: liveins: $sgpr0, $vgpr0
52     ; CHECK: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
53     ; CHECK: [[COPY1:%[0-9]+]]:vgpr_32(s32) = COPY $vgpr0
54     ; CHECK: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)
55     ; CHECK: [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32(s32) = V_READFIRSTLANE_B32 [[COPY1]](s32), implicit $exec
56     ; CHECK: [[INT:%[0-9]+]]:vgpr(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.interp.p1), [[COPY2]](s32), 1, 1, [[V_READFIRSTLANE_B32_]](s32)
57     %0:_(s32) = COPY $sgpr0
58     %1:_(s32) = COPY $vgpr0
59     %2:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.interp.p1), %0, 1, 1, %1
60 ...
62 ---
63 name: interp_p1_vv
64 legalized: true
65 tracksRegLiveness: true
67 body: |
68   bb.0:
69     liveins: $vgpr0, $vgpr1
70     ; CHECK-LABEL: name: interp_p1_vv
71     ; CHECK: liveins: $vgpr0, $vgpr1
72     ; CHECK: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
73     ; CHECK: [[COPY1:%[0-9]+]]:vgpr_32(s32) = COPY $vgpr1
74     ; CHECK: [[V_READFIRSTLANE_B32_:%[0-9]+]]:sreg_32(s32) = V_READFIRSTLANE_B32 [[COPY1]](s32), implicit $exec
75     ; CHECK: [[INT:%[0-9]+]]:vgpr(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.interp.p1), [[COPY]](s32), 1, 1, [[V_READFIRSTLANE_B32_]](s32)
76     %0:_(s32) = COPY $vgpr0
77     %1:_(s32) = COPY $vgpr1
78     %2:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.interp.p1), %0, 1, 1, %1
79 ...