[DAGCombiner] Add target hook function to decide folding (mul (add x, c1), c2)
[llvm-project.git] / llvm / test / MC / AMDGPU / out-of-range-registers.s
blobd5d8a9bab55138dae7a81cec149061d48c892569
1 // RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefixes=GCN-ERR,SICIVI9-ERR,SIVICI-ERR,SI-ERR --implicit-check-not=error: %s
2 // RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefixes=GCN-ERR,SICIVI9-ERR,SIVICI-ERR,VI-ERR --implicit-check-not=error: %s
3 // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck -check-prefixes=GCN-ERR,GFX9-ERR,SICIVI9-ERR --implicit-check-not=error: %s
4 // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 %s 2>&1 | FileCheck -check-prefixes=GCN-ERR,GFX10-ERR --implicit-check-not=error: %s
6 // RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck -check-prefix=SIVICI %s
7 // RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck -check-prefixes=SIVICI,CIVI9 %s
8 // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefixes=GFX9,CIVI9 %s
9 // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck -check-prefix=GFX10 %s
11 s_add_i32 s106, s0, s1
12 // GCN-ERR: error: register index is out of range
14 s_add_i32 s104, s0, s1
15 // SICIVI9-ERR: error: register not available on this GPU
16 // GFX10: s_add_i32 s104, s0, s1 ; encoding:
18 s_add_i32 s105, s0, s1
19 // SICIVI9-ERR: error: register not available on this GPU
20 // GFX10: s_add_i32 s105, s0, s1 ; encoding:
22 v_add_i32 v256, v0, v1
23 // GFX10-ERR: error: instruction not supported on this GPU
24 // GFX9-ERR: error: register index is out of range
25 // SI-ERR: error: register index is out of range
26 // VI-ERR: error: instruction not supported on this GPU
28 v_add_i32 v257, v0, v1
29 // GFX10-ERR: error: instruction not supported on this GPU
30 // GFX9-ERR: error: register index is out of range
31 // SI-ERR: error: register index is out of range
32 // VI-ERR: error: instruction not supported on this GPU
34 s_mov_b64 s[0:17], -1
35 // GCN-ERR: error: invalid or unsupported register size
37 s_mov_b64 s[103:104], -1
38 // GCN-ERR: error: invalid register alignment
40 s_mov_b64 s[105:106], -1
41 // GCN-ERR: error: invalid register alignment
43 s_mov_b64 s[104:105], -1
44 // SICIVI9-ERR: error: register not available on this GPU
45 // GFX10: s_mov_b64 s[104:105], -1 ; encoding:
47 s_load_dwordx4 s[102:105], s[2:3], s4
48 // GCN-ERR: error: invalid register alignment
50 s_load_dwordx4 s[104:108], s[2:3], s4
51 // GCN-ERR: error: register index is out of range
53 s_load_dwordx4 s[108:112], s[2:3], s4
54 // GCN-ERR: error: register index is out of range
56 s_load_dwordx4 s[1:4], s[2:3], s4
57 // GCN-ERR: error: invalid register alignment
59 s_load_dwordx4 s[2:5], s[2:3], s4
60 // GCN-ERR: error: invalid register alignment
62 s_load_dwordx8 s[104:111], s[2:3], s4
63 // GCN-ERR: error: register index is out of range
65 s_load_dwordx8 s[100:107], s[2:3], s4
66 // GCN-ERR: error: register index is out of range
68 s_load_dwordx8 s[108:115], s[2:3], s4
69 // GCN-ERR: error: register index is out of range
71 s_load_dwordx16 s[92:107], s[2:3], s4
72 // GCN-ERR: error: register index is out of range
74 s_load_dwordx16 s[96:111], s[2:3], s4
75 // GCN-ERR: error: register index is out of range
77 s_load_dwordx16 s[100:115], s[2:3], s4
78 // GCN-ERR: error: register index is out of range
80 s_load_dwordx16 s[104:119], s[2:3], s4
81 // GCN-ERR: error: register index is out of range
83 s_load_dwordx16 s[108:123], s[2:3], s4
84 // GCN-ERR: error: register index is out of range
86 s_mov_b32 ttmp16, 0
87 // GCN-ERR: error: register index is out of range
89 s_mov_b32 ttmp12, 0
90 // GFX9: s_mov_b32 ttmp12, 0 ; encoding:
91 // GFX10: s_mov_b32 ttmp12, 0 ; encoding:
92 // SIVICI-ERR: error: register not available on this GPU
94 s_mov_b32 ttmp15, 0
95 // GFX9: s_mov_b32 ttmp15, 0 ; encoding:
96 // GFX10: s_mov_b32 ttmp15, 0 ; encoding:
97 // SIVICI-ERR: error: register not available on this GPU
99 s_mov_b32 flat_scratch_lo, 0
100 // SI-ERR: error: register not available on this GPU
101 // GFX10-ERR: error: register not available on this GPU
102 // CIVI9: s_mov_b32 flat_scratch_lo, 0 ; encoding: [0x80,0x00,0xe6,0xbe]
104 s_mov_b32 flat_scratch_hi, 0
105 // SI-ERR: error: register not available on this GPU
106 // GFX10-ERR: error: register not available on this GPU
107 // CIVI9: s_mov_b32 flat_scratch_hi, 0 ; encoding: [0x80,0x00,0xe7,0xbe]
109 s_mov_b32 tma_lo, 0
110 // SIVICI: s_mov_b32 tma_lo, 0 ; encoding:
111 // GFX9-ERR: error: register not available on this GPU
112 // GFX10-ERR: error: register not available on this GPU
114 s_mov_b32 tba_lo, 0
115 // SIVICI: s_mov_b32 tba_lo, 0 ; encoding:
116 // GFX9-ERR: error: register not available on this GPU
117 // GFX10-ERR: error: register not available on this GPU