Files
clang-p2996/llvm/test/CodeGen/AMDGPU/nullptr.ll
Fangrui Song 9e9907f1cf [AMDGPU,test] Change llc -march= to -mtriple= (#75982)
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
```
2024-01-16 21:54:58 -08:00

121 lines
4.1 KiB
LLVM

;RUN: llc < %s -mtriple=amdgcn-- -verify-machineinstrs | FileCheck -check-prefixes=CHECK,GCN %s
;RUN: llc < %s -mtriple=r600 -mtriple=r600-- -verify-machineinstrs | FileCheck -check-prefixes=CHECK,R600 %s
%struct.S = type { ptr addrspace(5), ptr addrspace(1), ptr addrspace(4), ptr addrspace(3), ptr, ptr addrspace(2)}
; CHECK-LABEL: nullptr_priv:
; CHECK-NEXT: .long -1
@nullptr_priv = global ptr addrspace(5) addrspacecast (ptr null to ptr addrspace(5))
; CHECK-LABEL: nullptr_glob:
; GCN-NEXT: .quad 0
; R600-NEXT: .long 0
@nullptr_glob = global ptr addrspace(1) addrspacecast (ptr null to ptr addrspace(1))
; CHECK-LABEL: nullptr_const:
; GCN-NEXT: .quad 0
; R600-NEXT: .long 0
@nullptr_const = global ptr addrspace(4) addrspacecast (ptr null to ptr addrspace(4))
; CHECK-LABEL: nullptr_local:
; CHECK-NEXT: .long -1
@nullptr_local = global ptr addrspace(3) addrspacecast (ptr null to ptr addrspace(3))
; CHECK-LABEL: nullptr_region:
; CHECK-NEXT: .long -1
@nullptr_region = global ptr addrspace(2) addrspacecast (ptr null to ptr addrspace(2))
; CHECK-LABEL: nullptr6:
; R600-NEXT: .long 0
@nullptr6 = global ptr addrspace(6) addrspacecast (ptr null to ptr addrspace(6))
; FIXME: AsmPrinter can't handle 128-bit constants
; FIXME-LABEL: nullptr7:
; FIXME-R600-NEXT: .long 0
; FIXME @nullptr7 = global ptr addrspace(7) addrspacecast (ptr null to ptr addrspace(7))
; FIXME-LABEL: nullptr8:
; FIXME-R600-NEXT: .long 0
; FIXME @nullptr8 = global ptr addrspace(8) addrspacecast (ptr null to ptr addrspace(8))
; FIXME-LABEL: nullptr9:
; FIXME-R600-NEXT: .long 0
; FIXME @nullptr9 = global ptr addrspace(9) addrspacecast (ptr null to ptr addrspace(9))
; CHECK-LABEL: nullptr10:
; R600-NEXT: .long 0
@nullptr10 = global ptr addrspace(10) addrspacecast (ptr null to ptr addrspace(10))
; CHECK-LABEL: nullptr11:
; R600-NEXT: .long 0
@nullptr11 = global ptr addrspace(11) addrspacecast (ptr null to ptr addrspace(11))
; CHECK-LABEL: nullptr12:
; R600-NEXT: .long 0
@nullptr12 = global ptr addrspace(12) addrspacecast (ptr null to ptr addrspace(12))
; CHECK-LABEL: nullptr13:
; R600-NEXT: .long 0
@nullptr13 = global ptr addrspace(13) addrspacecast (ptr null to ptr addrspace(13))
; CHECK-LABEL: nullptr14:
; R600-NEXT: .long 0
@nullptr14 = global ptr addrspace(14) addrspacecast (ptr null to ptr addrspace(14))
; CHECK-LABEL: nullptr15:
; R600-NEXT: .long 0
@nullptr15 = global ptr addrspace(15) addrspacecast (ptr null to ptr addrspace(15))
; CHECK-LABEL: nullptr16:
; R600-NEXT: .long 0
@nullptr16 = global ptr addrspace(16) addrspacecast (ptr null to ptr addrspace(16))
; CHECK-LABEL: nullptr17:
; R600-NEXT: .long 0
@nullptr17 = global ptr addrspace(17) addrspacecast (ptr null to ptr addrspace(17))
; CHECK-LABEL: nullptr18:
; R600-NEXT: .long 0
@nullptr18 = global ptr addrspace(18) addrspacecast (ptr null to ptr addrspace(18))
; CHECK-LABEL: nullptr19:
; R600-NEXT: .long 0
@nullptr19 = global ptr addrspace(19) addrspacecast (ptr null to ptr addrspace(19))
; CHECK-LABEL: nullptr20:
; R600-NEXT: .long 0
@nullptr20 = global ptr addrspace(20) addrspacecast (ptr null to ptr addrspace(20))
; CHECK-LABEL: nullptr21:
; R600-NEXT: .long 0
@nullptr21 = global ptr addrspace(21) addrspacecast (ptr null to ptr addrspace(21))
; CHECK-LABEL: nullptr22:
; R600-NEXT: .long 0
@nullptr22 = global ptr addrspace(22) addrspacecast (ptr null to ptr addrspace(22))
; CHECK-LABEL: nullptr23:
; R600-NEXT: .long 0
@nullptr23 = global ptr addrspace(23) addrspacecast (ptr null to ptr addrspace(23))
; CHECK-LABEL: structWithPointers:
; CHECK-NEXT: .long -1
; GCN-NEXT: .zero 4
; GCN-NEXT: .quad 0
; R600-NEXT: .long 0
; GCN-NEXT: .quad 0
; R600-NEXT: .long 0
; CHECK-NEXT: .long -1
; GCN-NEXT: .zero 4
; GCN-NEXT: .quad 0
; R600-NEXT: .long 0
; CHECK-NEXT: .long -1
; GCN-NEXT: .zero 4
@structWithPointers = addrspace(1) global %struct.S {
ptr addrspace(5) addrspacecast (ptr null to ptr addrspace(5)),
ptr addrspace(1) addrspacecast (ptr null to ptr addrspace(1)),
ptr addrspace(4) addrspacecast (ptr null to ptr addrspace(4)),
ptr addrspace(3) addrspacecast (ptr null to ptr addrspace(3)),
ptr null,
ptr addrspace(2) addrspacecast (ptr null to ptr addrspace(2))}, align 4