[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / AMDGPU / wqm.mir
bloba5009cc7924f1a0c1fab84ebfeae4704d263ebf1
1 # RUN: llc -march=amdgcn -verify-machineinstrs -run-pass si-wqm -o -  %s | FileCheck %s
3 ---
4 # Check for awareness that s_or_saveexec_b64 clobbers SCC
6 #CHECK: ENTER_WWM
7 #CHECK: S_CMP_LT_I32
8 #CHECK: S_CSELECT_B32
9 name:            test_wwm_scc
10 alignment:       1
11 exposesReturnsTwice: false
12 legalized:       false
13 regBankSelected: false
14 selected:        false
15 tracksRegLiveness: true
16 registers:       
17   - { id: 0, class: sgpr_32, preferred-register: '' }
18   - { id: 1, class: sgpr_32, preferred-register: '' }
19   - { id: 2, class: sgpr_32, preferred-register: '' }
20   - { id: 3, class: vgpr_32, preferred-register: '' }
21   - { id: 4, class: vgpr_32, preferred-register: '' }
22   - { id: 5, class: sgpr_32, preferred-register: '' }
23   - { id: 6, class: vgpr_32, preferred-register: '' }
24   - { id: 7, class: vgpr_32, preferred-register: '' }
25   - { id: 8, class: sreg_32_xm0, preferred-register: '' }
26   - { id: 9, class: sreg_32, preferred-register: '' }
27   - { id: 10, class: sreg_32, preferred-register: '' }
28   - { id: 11, class: vgpr_32, preferred-register: '' }
29   - { id: 12, class: vgpr_32, preferred-register: '' }
30 liveins:         
31   - { reg: '$sgpr0', virtual-reg: '%0' }
32   - { reg: '$sgpr1', virtual-reg: '%1' }
33   - { reg: '$sgpr2', virtual-reg: '%2' }
34   - { reg: '$vgpr0', virtual-reg: '%3' }
35 body:             |
36   bb.0:
37     liveins: $sgpr0, $sgpr1, $sgpr2, $vgpr0
38   
39     %3 = COPY $vgpr0
40     %2 = COPY $sgpr2
41     %1 = COPY $sgpr1
42     %0 = COPY $sgpr0
43     S_CMP_LT_I32 0, %0, implicit-def $scc
44     %12 = V_ADD_I32_e32 %3, %3, implicit-def $vcc, implicit $exec
45     %5 = S_CSELECT_B32 %2, %1, implicit $scc
46     %11 = V_ADD_I32_e32 %5, %12, implicit-def $vcc, implicit $exec
47     $vgpr0 = WWM %11, implicit $exec
48     SI_RETURN_TO_EPILOG $vgpr0
50 ...