mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
e8b8eaa4d0
There are a number of MIR tests using instructions on subtargets where they don't really exist. These are some of the easy cases that don't require splitting up test functions.
102 lines
2.8 KiB
YAML
102 lines
2.8 KiB
YAML
# RUN: llc -march=amdgcn -mcpu=gfx900 -verify-machineinstrs -start-before si-shrink-instructions -stop-before si-insert-skips -o - %s | FileCheck -check-prefix=GCN %s
|
|
|
|
# GCN-LABEL: name: subbrev{{$}}
|
|
# GCN: V_SUBBREV_U32_e32 0, undef $vgpr0, implicit-def $vcc, implicit killed $vcc, implicit $exec
|
|
|
|
---
|
|
name: subbrev
|
|
tracksRegLiveness: true
|
|
registers:
|
|
- { id: 0, class: vgpr_32 }
|
|
- { id: 1, class: vgpr_32 }
|
|
- { id: 2, class: vgpr_32 }
|
|
- { id: 3, class: sreg_64_xexec }
|
|
- { id: 4, class: vgpr_32 }
|
|
- { id: 5, class: sreg_64_xexec }
|
|
body: |
|
|
bb.0:
|
|
|
|
%0 = IMPLICIT_DEF
|
|
%1 = IMPLICIT_DEF
|
|
%2 = IMPLICIT_DEF
|
|
%3 = V_CMP_GT_U32_e64 %0, %1, implicit $exec
|
|
%4, %5 = V_SUBBREV_U32_e64 0, %0, %3, 0, implicit $exec
|
|
GLOBAL_STORE_DWORD undef $vgpr0_vgpr1, %4, 0, 0, 0, 0, implicit $exec
|
|
|
|
...
|
|
|
|
# GCN-LABEL: name: subb{{$}}
|
|
# GCN: V_SUBBREV_U32_e32 0, undef $vgpr0, implicit-def $vcc, implicit killed $vcc, implicit $exec
|
|
|
|
---
|
|
name: subb
|
|
tracksRegLiveness: true
|
|
registers:
|
|
- { id: 0, class: vgpr_32 }
|
|
- { id: 1, class: vgpr_32 }
|
|
- { id: 2, class: vgpr_32 }
|
|
- { id: 3, class: sreg_64_xexec }
|
|
- { id: 4, class: vgpr_32 }
|
|
- { id: 5, class: sreg_64_xexec }
|
|
body: |
|
|
bb.0:
|
|
|
|
%0 = IMPLICIT_DEF
|
|
%1 = IMPLICIT_DEF
|
|
%2 = IMPLICIT_DEF
|
|
%3 = V_CMP_GT_U32_e64 %0, %1, implicit $exec
|
|
%4, %5 = V_SUBB_U32_e64 %0, 0, %3, 0, implicit $exec
|
|
GLOBAL_STORE_DWORD undef $vgpr0_vgpr1, %4, 0, 0, 0, 0, implicit $exec
|
|
|
|
...
|
|
|
|
# GCN-LABEL: name: addc{{$}}
|
|
# GCN: V_ADDC_U32_e32 0, undef $vgpr0, implicit-def $vcc, implicit killed $vcc, implicit $exec
|
|
|
|
---
|
|
name: addc
|
|
tracksRegLiveness: true
|
|
registers:
|
|
- { id: 0, class: vgpr_32 }
|
|
- { id: 1, class: vgpr_32 }
|
|
- { id: 2, class: vgpr_32 }
|
|
- { id: 3, class: sreg_64_xexec }
|
|
- { id: 4, class: vgpr_32 }
|
|
- { id: 5, class: sreg_64_xexec }
|
|
body: |
|
|
bb.0:
|
|
|
|
%0 = IMPLICIT_DEF
|
|
%1 = IMPLICIT_DEF
|
|
%2 = IMPLICIT_DEF
|
|
%3 = V_CMP_GT_U32_e64 %0, %1, implicit $exec
|
|
%4, %5 = V_ADDC_U32_e64 0, %0, %3, 0, implicit $exec
|
|
GLOBAL_STORE_DWORD undef $vgpr0_vgpr1, %4, 0, 0, 0, 0, implicit $exec
|
|
|
|
...
|
|
|
|
# GCN-LABEL: name: addc2{{$}}
|
|
# GCN: V_ADDC_U32_e32 0, undef $vgpr0, implicit-def $vcc, implicit killed $vcc, implicit $exec
|
|
|
|
---
|
|
name: addc2
|
|
tracksRegLiveness: true
|
|
registers:
|
|
- { id: 0, class: vgpr_32 }
|
|
- { id: 1, class: vgpr_32 }
|
|
- { id: 2, class: vgpr_32 }
|
|
- { id: 3, class: sreg_64_xexec }
|
|
- { id: 4, class: vgpr_32 }
|
|
- { id: 5, class: sreg_64_xexec }
|
|
body: |
|
|
bb.0:
|
|
|
|
%0 = IMPLICIT_DEF
|
|
%1 = IMPLICIT_DEF
|
|
%2 = IMPLICIT_DEF
|
|
%3 = V_CMP_GT_U32_e64 %0, %1, implicit $exec
|
|
%4, %5 = V_ADDC_U32_e64 %0, 0, %3, 0, implicit $exec
|
|
GLOBAL_STORE_DWORD undef $vgpr0_vgpr1, %4, 0, 0, 0, 0, implicit $exec
|
|
|
|
...
|