File: fix-illegal-vector-copies.mir

package info (click to toggle)
llvm-toolchain-20 1%3A20.1.6-1~exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 2,111,304 kB
  • sloc: cpp: 7,438,677; ansic: 1,393,822; asm: 1,012,926; python: 241,650; f90: 86,635; objc: 75,479; lisp: 42,144; pascal: 17,286; sh: 10,027; ml: 5,082; perl: 4,730; awk: 3,523; makefile: 3,349; javascript: 2,251; xml: 892; fortran: 672
file content (59 lines) | stat: -rw-r--r-- 2,350 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# RUN: not --crash llc -mtriple=amdgcn -mcpu=gfx1200 -run-pass=none -o /dev/null %s 2>&1 | FileCheck %s

---  
name: fix-illegal-vector-copies  
tracksRegLiveness: true  
machineFunctionInfo:  
  isEntryFunction: true  
body:             |  
  bb.0:  
    %0:vgpr_32 = IMPLICIT_DEF  
    %0:vgpr_32 = IMPLICIT_DEF ; Break SSA format  
    %1:vgpr_32 = IMPLICIT_DEF  
    %2:sgpr_32 = IMPLICIT_DEF  
    %3:sgpr_32 = IMPLICIT_DEF  
    %4:agpr_32 = IMPLICIT_DEF  
    %5:agpr_32 = IMPLICIT_DEF  
  
    ; copy from virtual VGPR to virtual SGPR  
    ; CHECK: *** Bad machine code: illegal copy from vector register to SGPR ***  
    ; CHECK: - instruction: %6:sgpr_32 = COPY %0:vgpr_32  
    %6:sgpr_32 = COPY %0:vgpr_32  
  
    ; copy from virtual VGPR to physical SGPR  
    ; CHECK: *** Bad machine code: illegal copy from vector register to SGPR ***  
    ; CHECK: - instruction: $sgpr0 = COPY %0:vgpr_32  
    $sgpr0 = COPY %0:vgpr_32  
      
    ; copy from physical VGPR to physical SGPR  
    ; CHECK: *** Bad machine code: illegal copy from vector register to SGPR ***  
    ; CHECK: - instruction: $sgpr1 = COPY $vgpr0  
    $sgpr1 = COPY $vgpr0  
  
    ; copy from virtual AGPR to virtual SGPR  
    ; CHECK: *** Bad machine code: illegal copy from vector register to SGPR ***  
    ; CHECK: - instruction: %7:sgpr_32 = COPY %4:agpr_32  
    %7:sgpr_32 = COPY %4:agpr_32  
  
    ; copy from virtual AGPR to physical SGPR  
    ; CHECK: *** Bad machine code: illegal copy from vector register to SGPR ***  
    ; CHECK: - instruction: $sgpr2 = COPY %4:agpr_32  
    $sgpr2 = COPY %4:agpr_32  
  
    ; copy from physical AGPR to physical SGPR  
    ; CHECK: *** Bad machine code: illegal copy from vector register to SGPR ***  
    ; CHECK: - instruction: $sgpr3 = COPY $agpr0  
    $sgpr3 = COPY $agpr0   
  
    ; copy from tuple of physical VGPRs to tuple of physical SGPRs  
    ; CHECK: *** Bad machine code: illegal copy from vector register to SGPR ***
    ; CHECK: - instruction: $sgpr4_sgpr5 = COPY $vgpr0_vgpr1 
    $sgpr4_sgpr5 = COPY $vgpr0_vgpr1
  
    ; copy from tuple of physical AGPRs to tuple of physical SGPRs 
    ; CHECK: *** Bad machine code: illegal copy from vector register to SGPR ***
    ; CHECK: - instruction: $sgpr6_sgpr7 = COPY $agpr0_agpr1
    $sgpr6_sgpr7 = COPY $agpr0_agpr1  
  
    S_ENDPGM 0  
...