[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / AMDGPU / GlobalISel / inst-select-mul.mir
blob1dfbf74b11133cc3c1c2803baa09341f023473b3
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -march=amdgcn -mcpu=tahiti -run-pass=instruction-select -global-isel-abort=2 -pass-remarks-missed='gisel*' -verify-machineinstrs %s -o - 2>%t | FileCheck -check-prefix=GCN %s
4 ---
5 name: mul_s32_ss
6 legalized: true
7 regBankSelected: true
9 body: |
10   bb.0:
11     liveins: $sgpr0, $sgpr1
12     ; GCN-LABEL: name: mul_s32_ss
13     ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
14     ; GCN: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
15     ; GCN: [[S_MUL_I32_:%[0-9]+]]:sreg_32 = S_MUL_I32 [[COPY]], [[COPY1]]
16     ; GCN: S_ENDPGM 0, implicit [[S_MUL_I32_]]
17     %0:sgpr(s32) = COPY $sgpr0
18     %1:sgpr(s32) = COPY $sgpr1
19     %2:sgpr(s32) = G_MUL %0, %1
20     S_ENDPGM 0, implicit %2
21 ...
23 ---
24 name: mul_s32_sv
25 legalized: true
26 regBankSelected: true
28 body: |
29   bb.0:
30     liveins: $sgpr0, $vgpr0
31     ; GCN-LABEL: name: mul_s32_sv
32     ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
33     ; GCN: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0
34     ; GCN: [[V_MUL_LO_U32_:%[0-9]+]]:vgpr_32 = V_MUL_LO_U32 [[COPY]], [[COPY1]], implicit $exec
35     ; GCN: S_ENDPGM 0, implicit [[V_MUL_LO_U32_]]
36     %0:sgpr(s32) = COPY $sgpr0
37     %1:vgpr(s32) = COPY $vgpr0
38     %2:vgpr(s32) = G_MUL %0, %1
39     S_ENDPGM 0, implicit %2
40 ...
42 ---
43 name: mul_s32_vs
44 legalized: true
45 regBankSelected: true
47 body: |
48   bb.0:
49     liveins: $sgpr0, $vgpr0
50     ; GCN-LABEL: name: mul_s32_vs
51     ; GCN: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
52     ; GCN: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0
53     ; GCN: [[V_MUL_LO_U32_:%[0-9]+]]:vgpr_32 = V_MUL_LO_U32 [[COPY]], [[COPY1]], implicit $exec
54     ; GCN: S_ENDPGM 0, implicit [[V_MUL_LO_U32_]]
55     %0:vgpr(s32) = COPY $vgpr0
56     %1:sgpr(s32) = COPY $sgpr0
57     %2:vgpr(s32) = G_MUL %0, %1
58     S_ENDPGM 0, implicit %2
59 ...
61 ---
62 name: mul_s32_vv
63 legalized: true
64 regBankSelected: true
66 body: |
67   bb.0:
68     liveins: $vgpr0, $vgpr1
69     ; GCN-LABEL: name: mul_s32_vv
70     ; GCN: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
71     ; GCN: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
72     ; GCN: [[V_MUL_LO_U32_:%[0-9]+]]:vgpr_32 = V_MUL_LO_U32 [[COPY]], [[COPY1]], implicit $exec
73     ; GCN: S_ENDPGM 0, implicit [[V_MUL_LO_U32_]]
74     %0:vgpr(s32) = COPY $vgpr0
75     %1:vgpr(s32) = COPY $vgpr1
76     %2:vgpr(s32) = G_MUL %0, %1
77     S_ENDPGM 0, implicit %2
78 ...