[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / AMDGPU / shrink-carry.mir
blobe6ba43fed5e9a069a388027127dc9913377f5a6a
1 # RUN: llc -march=amdgcn -verify-machineinstrs -start-before si-shrink-instructions -stop-before si-insert-skips -o - %s | FileCheck -check-prefix=GCN %s
3 # GCN-LABEL: name: subbrev{{$}}
4 # GCN:       V_SUBBREV_U32_e32 0, undef $vgpr0, implicit-def $vcc, implicit killed $vcc, implicit $exec
6 ---
7 name:            subbrev
8 tracksRegLiveness: true
9 registers:
10   - { id: 0, class: vgpr_32 }
11   - { id: 1, class: vgpr_32 }
12   - { id: 2, class: vgpr_32 }
13   - { id: 3, class: sreg_64_xexec }
14   - { id: 4, class: vgpr_32 }
15   - { id: 5, class: sreg_64_xexec }
16 body:             |
17   bb.0:
19     %0 = IMPLICIT_DEF
20     %1 = IMPLICIT_DEF
21     %2 = IMPLICIT_DEF
22     %3 = V_CMP_GT_U32_e64 %0, %1, implicit $exec
23     %4, %5 = V_SUBBREV_U32_e64 0, %0, %3, 0, implicit $exec
24     GLOBAL_STORE_DWORD undef $vgpr0_vgpr1, %4, 0, 0, 0, 0, implicit $exec
26 ...
28 # GCN-LABEL: name: subb{{$}}
29 # GCN:       V_SUBBREV_U32_e32 0, undef $vgpr0, implicit-def $vcc, implicit killed $vcc, implicit $exec
31 ---
32 name:            subb
33 tracksRegLiveness: true
34 registers:
35   - { id: 0, class: vgpr_32 }
36   - { id: 1, class: vgpr_32 }
37   - { id: 2, class: vgpr_32 }
38   - { id: 3, class: sreg_64_xexec }
39   - { id: 4, class: vgpr_32 }
40   - { id: 5, class: sreg_64_xexec }
41 body:             |
42   bb.0:
44     %0 = IMPLICIT_DEF
45     %1 = IMPLICIT_DEF
46     %2 = IMPLICIT_DEF
47     %3 = V_CMP_GT_U32_e64 %0, %1, implicit $exec
48     %4, %5 = V_SUBB_U32_e64 %0, 0, %3, 0, implicit $exec
49     GLOBAL_STORE_DWORD undef $vgpr0_vgpr1, %4, 0, 0, 0, 0, implicit $exec
51 ...
53 # GCN-LABEL: name: addc{{$}}
54 # GCN:       V_ADDC_U32_e32 0, undef $vgpr0, implicit-def $vcc, implicit killed $vcc, implicit $exec
56 ---
57 name:            addc
58 tracksRegLiveness: true
59 registers:
60   - { id: 0, class: vgpr_32 }
61   - { id: 1, class: vgpr_32 }
62   - { id: 2, class: vgpr_32 }
63   - { id: 3, class: sreg_64_xexec }
64   - { id: 4, class: vgpr_32 }
65   - { id: 5, class: sreg_64_xexec }
66 body:             |
67   bb.0:
69     %0 = IMPLICIT_DEF
70     %1 = IMPLICIT_DEF
71     %2 = IMPLICIT_DEF
72     %3 = V_CMP_GT_U32_e64 %0, %1, implicit $exec
73     %4, %5 = V_ADDC_U32_e64 0, %0, %3, 0, implicit $exec
74     GLOBAL_STORE_DWORD undef $vgpr0_vgpr1, %4, 0, 0, 0, 0, implicit $exec
76 ...
78 # GCN-LABEL: name: addc2{{$}}
79 # GCN:       V_ADDC_U32_e32 0, undef $vgpr0, implicit-def $vcc, implicit killed $vcc, implicit $exec
81 ---
82 name:            addc2
83 tracksRegLiveness: true
84 registers:
85   - { id: 0, class: vgpr_32 }
86   - { id: 1, class: vgpr_32 }
87   - { id: 2, class: vgpr_32 }
88   - { id: 3, class: sreg_64_xexec }
89   - { id: 4, class: vgpr_32 }
90   - { id: 5, class: sreg_64_xexec }
91 body:             |
92   bb.0:
94     %0 = IMPLICIT_DEF
95     %1 = IMPLICIT_DEF
96     %2 = IMPLICIT_DEF
97     %3 = V_CMP_GT_U32_e64 %0, %1, implicit $exec
98     %4, %5 = V_ADDC_U32_e64 %0, 0, %3, 0, implicit $exec
99     GLOBAL_STORE_DWORD undef $vgpr0_vgpr1, %4, 0, 0, 0, 0, implicit $exec