Similar to 806761a762.
For IR files without a target triple, -mtriple= specifies the full
target triple while -march= merely sets the architecture part of the
default target triple, leaving a target triple which may not make sense,
e.g. amdgpu-apple-darwin.
Therefore, -march= is error-prone and not recommended for tests without
a target triple. The issue has been benign as we recognize
$unknown-apple-darwin as ELF instead of rejecting it outrightly.
This patch changes AMDGPU tests to not rely on the default
OS/environment components. Tests that need fixes are not changed:
```
LLVM :: CodeGen/AMDGPU/fabs.f64.ll
LLVM :: CodeGen/AMDGPU/fabs.ll
LLVM :: CodeGen/AMDGPU/floor.ll
LLVM :: CodeGen/AMDGPU/fneg-fabs.f64.ll
LLVM :: CodeGen/AMDGPU/fneg-fabs.ll
LLVM :: CodeGen/AMDGPU/r600-infinite-loop-bug-while-reorganizing-vector.ll
LLVM :: CodeGen/AMDGPU/schedule-if-2.ll
```
103 lines
4.5 KiB
LLVM
103 lines
4.5 KiB
LLVM
; RUN: not llc -mtriple=amdgcn -verify-machineinstrs < %s 2>&1 | FileCheck -check-prefix=ERROR %s
|
|
|
|
; ERROR: error: <unknown>:0:0: scalar registers (106) exceeds limit (104) in function 'use_too_many_sgprs_tahiti'
|
|
define amdgpu_kernel void @use_too_many_sgprs_tahiti() #0 {
|
|
call void asm sideeffect "", "~{s[0:7]}" ()
|
|
call void asm sideeffect "", "~{s[8:15]}" ()
|
|
call void asm sideeffect "", "~{s[16:23]}" ()
|
|
call void asm sideeffect "", "~{s[24:31]}" ()
|
|
call void asm sideeffect "", "~{s[32:39]}" ()
|
|
call void asm sideeffect "", "~{s[40:47]}" ()
|
|
call void asm sideeffect "", "~{s[48:55]}" ()
|
|
call void asm sideeffect "", "~{s[56:63]}" ()
|
|
call void asm sideeffect "", "~{s[64:71]}" ()
|
|
call void asm sideeffect "", "~{s[72:79]}" ()
|
|
call void asm sideeffect "", "~{s[80:87]}" ()
|
|
call void asm sideeffect "", "~{s[88:95]}" ()
|
|
call void asm sideeffect "", "~{s[96:103]}" ()
|
|
call void asm sideeffect "", "~{vcc}" ()
|
|
ret void
|
|
}
|
|
|
|
; ERROR: error: <unknown>:0:0: scalar registers (106) exceeds limit (104) in function 'use_too_many_sgprs_bonaire'
|
|
define amdgpu_kernel void @use_too_many_sgprs_bonaire() #1 {
|
|
call void asm sideeffect "", "~{s[0:7]}" ()
|
|
call void asm sideeffect "", "~{s[8:15]}" ()
|
|
call void asm sideeffect "", "~{s[16:23]}" ()
|
|
call void asm sideeffect "", "~{s[24:31]}" ()
|
|
call void asm sideeffect "", "~{s[32:39]}" ()
|
|
call void asm sideeffect "", "~{s[40:47]}" ()
|
|
call void asm sideeffect "", "~{s[48:55]}" ()
|
|
call void asm sideeffect "", "~{s[56:63]}" ()
|
|
call void asm sideeffect "", "~{s[64:71]}" ()
|
|
call void asm sideeffect "", "~{s[72:79]}" ()
|
|
call void asm sideeffect "", "~{s[80:87]}" ()
|
|
call void asm sideeffect "", "~{s[88:95]}" ()
|
|
call void asm sideeffect "", "~{s[96:103]}" ()
|
|
call void asm sideeffect "", "~{vcc}" ()
|
|
ret void
|
|
}
|
|
|
|
; ERROR: error: <unknown>:0:0: scalar registers (108) exceeds limit (104) in function 'use_too_many_sgprs_bonaire_flat_scr'
|
|
define amdgpu_kernel void @use_too_many_sgprs_bonaire_flat_scr() #1 {
|
|
call void asm sideeffect "", "~{s[0:7]}" ()
|
|
call void asm sideeffect "", "~{s[8:15]}" ()
|
|
call void asm sideeffect "", "~{s[16:23]}" ()
|
|
call void asm sideeffect "", "~{s[24:31]}" ()
|
|
call void asm sideeffect "", "~{s[32:39]}" ()
|
|
call void asm sideeffect "", "~{s[40:47]}" ()
|
|
call void asm sideeffect "", "~{s[48:55]}" ()
|
|
call void asm sideeffect "", "~{s[56:63]}" ()
|
|
call void asm sideeffect "", "~{s[64:71]}" ()
|
|
call void asm sideeffect "", "~{s[72:79]}" ()
|
|
call void asm sideeffect "", "~{s[80:87]}" ()
|
|
call void asm sideeffect "", "~{s[88:95]}" ()
|
|
call void asm sideeffect "", "~{s[96:103]}" ()
|
|
call void asm sideeffect "", "~{vcc}" ()
|
|
call void asm sideeffect "", "~{flat_scratch}" ()
|
|
ret void
|
|
}
|
|
|
|
; ERROR: error: <unknown>:0:0: scalar registers (98) exceeds limit (96) in function 'use_too_many_sgprs_iceland'
|
|
define amdgpu_kernel void @use_too_many_sgprs_iceland() #2 {
|
|
call void asm sideeffect "", "~{vcc}" ()
|
|
call void asm sideeffect "", "~{s[0:7]}" ()
|
|
call void asm sideeffect "", "~{s[8:15]}" ()
|
|
call void asm sideeffect "", "~{s[16:23]}" ()
|
|
call void asm sideeffect "", "~{s[24:31]}" ()
|
|
call void asm sideeffect "", "~{s[32:39]}" ()
|
|
call void asm sideeffect "", "~{s[40:47]}" ()
|
|
call void asm sideeffect "", "~{s[48:55]}" ()
|
|
call void asm sideeffect "", "~{s[56:63]}" ()
|
|
call void asm sideeffect "", "~{s[64:71]}" ()
|
|
call void asm sideeffect "", "~{s[72:79]}" ()
|
|
call void asm sideeffect "", "~{s[80:87]}" ()
|
|
call void asm sideeffect "", "~{s[88:95]}" ()
|
|
ret void
|
|
}
|
|
|
|
; ERROR: error: <unknown>:0:0: addressable scalar registers (103) exceeds limit (102) in function 'use_too_many_sgprs_fiji'
|
|
define amdgpu_kernel void @use_too_many_sgprs_fiji() #3 {
|
|
call void asm sideeffect "", "~{s[0:7]}" ()
|
|
call void asm sideeffect "", "~{s[8:15]}" ()
|
|
call void asm sideeffect "", "~{s[16:23]}" ()
|
|
call void asm sideeffect "", "~{s[24:31]}" ()
|
|
call void asm sideeffect "", "~{s[32:39]}" ()
|
|
call void asm sideeffect "", "~{s[40:47]}" ()
|
|
call void asm sideeffect "", "~{s[48:55]}" ()
|
|
call void asm sideeffect "", "~{s[56:63]}" ()
|
|
call void asm sideeffect "", "~{s[64:71]}" ()
|
|
call void asm sideeffect "", "~{s[72:79]}" ()
|
|
call void asm sideeffect "", "~{s[80:87]}" ()
|
|
call void asm sideeffect "", "~{s[88:95]}" ()
|
|
call void asm sideeffect "", "~{s[96:99]}" ()
|
|
call void asm sideeffect "", "~{s[100:101]}" ()
|
|
call void asm sideeffect "", "~{s102}" ()
|
|
ret void
|
|
}
|
|
|
|
attributes #0 = { nounwind "target-cpu"="tahiti" }
|
|
attributes #1 = { nounwind "target-cpu"="bonaire" }
|
|
attributes #2 = { nounwind "target-cpu"="iceland" }
|
|
attributes #3 = { nounwind "target-cpu"="fiji" }
|