mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-21 18:22:53 +01:00
AMDGPU: Remove .value_type from kernel metadata
This doesn't appear used for anything, and is emitted incorrectly based on the description. This also depends on the IR type, and pointee element type.
This commit is contained in:
parent
109a838777
commit
e36234a636
@ -2318,29 +2318,10 @@ non-AMD key names should be prefixed by "*vendor-name*.".
|
||||
multi-grid synchronization is
|
||||
passed in the kernarg.
|
||||
|
||||
"ValueType" string Required Kernel argument value type. Only
|
||||
present if "ValueKind" is
|
||||
"ByValue". For vector data
|
||||
types, the value is for the
|
||||
element type. Values include:
|
||||
"ValueType" string Unused and deprecated. This should no longer
|
||||
be emitted, but is accepted for compatibility.
|
||||
|
||||
- "Struct"
|
||||
- "I8"
|
||||
- "U8"
|
||||
- "I16"
|
||||
- "U16"
|
||||
- "F16"
|
||||
- "I32"
|
||||
- "U32"
|
||||
- "F32"
|
||||
- "I64"
|
||||
- "U64"
|
||||
- "F64"
|
||||
|
||||
.. TODO::
|
||||
How can it be determined if a
|
||||
vector type, and what size
|
||||
vector?
|
||||
"PointeeAlign" integer Alignment in bytes of pointee
|
||||
type for pointer type kernel
|
||||
argument. Must be a power
|
||||
@ -2817,29 +2798,9 @@ same *vendor-name*.
|
||||
multi-grid synchronization is
|
||||
passed in the kernarg.
|
||||
|
||||
".value_type" string Required Kernel argument value type. Only
|
||||
present if ".value_kind" is
|
||||
"by_value". For vector data
|
||||
types, the value is for the
|
||||
element type. Values include:
|
||||
".value_type" string Unused and deprecated. This should no longer
|
||||
be emitted, but is accepted for compatibility.
|
||||
|
||||
- "struct"
|
||||
- "i8"
|
||||
- "u8"
|
||||
- "i16"
|
||||
- "u16"
|
||||
- "f16"
|
||||
- "i32"
|
||||
- "u32"
|
||||
- "f32"
|
||||
- "i64"
|
||||
- "u64"
|
||||
- "f64"
|
||||
|
||||
.. TODO::
|
||||
How can it be determined if a
|
||||
vector type, and what size
|
||||
vector?
|
||||
".pointee_align" integer Alignment in bytes of pointee
|
||||
type for pointer type kernel
|
||||
argument. Must be a power
|
||||
|
@ -79,7 +79,8 @@ enum class ValueKind : uint8_t {
|
||||
Unknown = 0xff
|
||||
};
|
||||
|
||||
/// Value types.
|
||||
/// Value types. This is deprecated and only remains for compatibility parsing
|
||||
/// of old metadata.
|
||||
enum class ValueType : uint8_t {
|
||||
Struct = 0,
|
||||
I8 = 1,
|
||||
@ -164,7 +165,7 @@ constexpr char Offset[] = "Offset";
|
||||
constexpr char Align[] = "Align";
|
||||
/// Key for Kernel::Arg::Metadata::mValueKind.
|
||||
constexpr char ValueKind[] = "ValueKind";
|
||||
/// Key for Kernel::Arg::Metadata::mValueType.
|
||||
/// Key for Kernel::Arg::Metadata::mValueType. (deprecated)
|
||||
constexpr char ValueType[] = "ValueType";
|
||||
/// Key for Kernel::Arg::Metadata::mPointeeAlign.
|
||||
constexpr char PointeeAlign[] = "PointeeAlign";
|
||||
@ -198,8 +199,6 @@ struct Metadata final {
|
||||
uint32_t mAlign = 0;
|
||||
/// Value kind. Required.
|
||||
ValueKind mValueKind = ValueKind::Unknown;
|
||||
/// Value type. Required.
|
||||
ValueType mValueType = ValueType::Unknown;
|
||||
/// Pointee alignment in bytes. Optional.
|
||||
uint32_t mPointeeAlign = 0;
|
||||
/// Address space qualifier. Optional.
|
||||
|
@ -127,25 +127,6 @@ bool MetadataVerifier::verifyKernelArgs(msgpack::DocNode &Node) {
|
||||
.Default(false);
|
||||
}))
|
||||
return false;
|
||||
if (!verifyScalarEntry(ArgsMap, ".value_type", true,
|
||||
msgpack::Type::String,
|
||||
[](msgpack::DocNode &SNode) {
|
||||
return StringSwitch<bool>(SNode.getString())
|
||||
.Case("struct", true)
|
||||
.Case("i8", true)
|
||||
.Case("u8", true)
|
||||
.Case("i16", true)
|
||||
.Case("u16", true)
|
||||
.Case("f16", true)
|
||||
.Case("i32", true)
|
||||
.Case("u32", true)
|
||||
.Case("f32", true)
|
||||
.Case("i64", true)
|
||||
.Case("u64", true)
|
||||
.Case("f64", true)
|
||||
.Default(false);
|
||||
}))
|
||||
return false;
|
||||
if (!verifyIntegerEntry(ArgsMap, ".pointee_align", false))
|
||||
return false;
|
||||
if (!verifyScalarEntry(ArgsMap, ".address_space", false,
|
||||
|
@ -111,7 +111,11 @@ struct MappingTraits<Kernel::Arg::Metadata> {
|
||||
YIO.mapRequired(Kernel::Arg::Key::Size, MD.mSize);
|
||||
YIO.mapRequired(Kernel::Arg::Key::Align, MD.mAlign);
|
||||
YIO.mapRequired(Kernel::Arg::Key::ValueKind, MD.mValueKind);
|
||||
YIO.mapRequired(Kernel::Arg::Key::ValueType, MD.mValueType);
|
||||
|
||||
// Removed. Accepted for parsing compatibility, but not emitted.
|
||||
Optional<ValueType> Unused;
|
||||
YIO.mapOptional(Kernel::Arg::Key::ValueType, Unused);
|
||||
|
||||
YIO.mapOptional(Kernel::Arg::Key::PointeeAlign, MD.mPointeeAlign,
|
||||
uint32_t(0));
|
||||
YIO.mapOptional(Kernel::Arg::Key::AddrSpaceQual, MD.mAddrSpaceQual,
|
||||
|
@ -127,38 +127,6 @@ ValueKind MetadataStreamerV2::getValueKind(Type *Ty, StringRef TypeQual,
|
||||
ValueKind::ByValue);
|
||||
}
|
||||
|
||||
ValueType MetadataStreamerV2::getValueType(Type *Ty, StringRef TypeName) const {
|
||||
switch (Ty->getTypeID()) {
|
||||
case Type::IntegerTyID: {
|
||||
auto Signed = !TypeName.startswith("u");
|
||||
switch (Ty->getIntegerBitWidth()) {
|
||||
case 8:
|
||||
return Signed ? ValueType::I8 : ValueType::U8;
|
||||
case 16:
|
||||
return Signed ? ValueType::I16 : ValueType::U16;
|
||||
case 32:
|
||||
return Signed ? ValueType::I32 : ValueType::U32;
|
||||
case 64:
|
||||
return Signed ? ValueType::I64 : ValueType::U64;
|
||||
default:
|
||||
return ValueType::Struct;
|
||||
}
|
||||
}
|
||||
case Type::HalfTyID:
|
||||
return ValueType::F16;
|
||||
case Type::FloatTyID:
|
||||
return ValueType::F32;
|
||||
case Type::DoubleTyID:
|
||||
return ValueType::F64;
|
||||
case Type::PointerTyID:
|
||||
return getValueType(Ty->getPointerElementType(), TypeName);
|
||||
case Type::FixedVectorTyID:
|
||||
return getValueType(cast<VectorType>(Ty)->getElementType(), TypeName);
|
||||
default:
|
||||
return ValueType::Struct;
|
||||
}
|
||||
}
|
||||
|
||||
std::string MetadataStreamerV2::getTypeName(Type *Ty, bool Signed) const {
|
||||
switch (Ty->getTypeID()) {
|
||||
case Type::IntegerTyID: {
|
||||
@ -372,7 +340,6 @@ void MetadataStreamerV2::emitKernelArg(const DataLayout &DL, Type *Ty,
|
||||
Arg.mSize = DL.getTypeAllocSize(Ty);
|
||||
Arg.mAlign = DL.getABITypeAlign(Ty).value();
|
||||
Arg.mValueKind = ValueKind;
|
||||
Arg.mValueType = getValueType(Ty, BaseTypeName);
|
||||
Arg.mPointeeAlign = PointeeAlign ? PointeeAlign->value() : 0;
|
||||
|
||||
if (auto PtrTy = dyn_cast<PointerType>(Ty))
|
||||
@ -573,38 +540,6 @@ StringRef MetadataStreamerV3::getValueKind(Type *Ty, StringRef TypeQual,
|
||||
: "by_value");
|
||||
}
|
||||
|
||||
StringRef MetadataStreamerV3::getValueType(Type *Ty, StringRef TypeName) const {
|
||||
switch (Ty->getTypeID()) {
|
||||
case Type::IntegerTyID: {
|
||||
auto Signed = !TypeName.startswith("u");
|
||||
switch (Ty->getIntegerBitWidth()) {
|
||||
case 8:
|
||||
return Signed ? "i8" : "u8";
|
||||
case 16:
|
||||
return Signed ? "i16" : "u16";
|
||||
case 32:
|
||||
return Signed ? "i32" : "u32";
|
||||
case 64:
|
||||
return Signed ? "i64" : "u64";
|
||||
default:
|
||||
return "struct";
|
||||
}
|
||||
}
|
||||
case Type::HalfTyID:
|
||||
return "f16";
|
||||
case Type::FloatTyID:
|
||||
return "f32";
|
||||
case Type::DoubleTyID:
|
||||
return "f64";
|
||||
case Type::PointerTyID:
|
||||
return getValueType(Ty->getPointerElementType(), TypeName);
|
||||
case Type::FixedVectorTyID:
|
||||
return getValueType(cast<VectorType>(Ty)->getElementType(), TypeName);
|
||||
default:
|
||||
return "struct";
|
||||
}
|
||||
}
|
||||
|
||||
std::string MetadataStreamerV3::getTypeName(Type *Ty, bool Signed) const {
|
||||
switch (Ty->getTypeID()) {
|
||||
case Type::IntegerTyID: {
|
||||
@ -801,8 +736,6 @@ void MetadataStreamerV3::emitKernelArg(const DataLayout &DL, Type *Ty,
|
||||
Arg[".offset"] = Arg.getDocument()->getNode(Offset);
|
||||
Offset += Size;
|
||||
Arg[".value_kind"] = Arg.getDocument()->getNode(ValueKind, /*Copy=*/true);
|
||||
Arg[".value_type"] =
|
||||
Arg.getDocument()->getNode(getValueType(Ty, BaseTypeName), /*Copy=*/true);
|
||||
if (PointeeAlign)
|
||||
Arg[".pointee_align"] = Arg.getDocument()->getNode(PointeeAlign->value());
|
||||
|
||||
|
@ -67,8 +67,6 @@ private:
|
||||
StringRef getValueKind(Type *Ty, StringRef TypeQual,
|
||||
StringRef BaseTypeName) const;
|
||||
|
||||
StringRef getValueType(Type *Ty, StringRef TypeName) const;
|
||||
|
||||
std::string getTypeName(Type *Ty, bool Signed) const;
|
||||
|
||||
msgpack::ArrayDocNode getWorkGroupDimensions(MDNode *Node) const;
|
||||
@ -135,8 +133,6 @@ private:
|
||||
ValueKind getValueKind(Type *Ty, StringRef TypeQual,
|
||||
StringRef BaseTypeName) const;
|
||||
|
||||
ValueType getValueType(Type *Ty, StringRef TypeName) const;
|
||||
|
||||
std::string getTypeName(Type *Ty, bool Signed) const;
|
||||
|
||||
std::vector<uint32_t> getWorkGroupDimensions(MDNode *Node) const;
|
||||
|
@ -1,6 +1,6 @@
|
||||
; RUN: llc -mattr=+code-object-v3 -mtriple=amdgcn-amd-amdhsa -filetype=obj -o - < %s | llvm-readelf --notes | FileCheck %s
|
||||
|
||||
; CHECK: - .args:
|
||||
; CHECK: - .args:
|
||||
; CHECK-NEXT: - .access: read_only
|
||||
; CHECK-NEXT: .address_space: global
|
||||
; CHECK-NEXT: .is_const: true
|
||||
@ -10,14 +10,12 @@
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .type_name: 'float*'
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f32
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .name: out
|
||||
; CHECK-NEXT: .offset: 8
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .type_name: 'float*'
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f32
|
||||
; CHECK: .name: test_ro_arg
|
||||
; CHECK: .symbol: test_ro_arg.kd
|
||||
|
||||
|
@ -8,7 +8,6 @@
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F32
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: AccQual: ReadOnly
|
||||
; CHECK-NEXT: IsConst: true
|
||||
@ -18,7 +17,6 @@
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F32
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: AccQual: Default
|
||||
|
||||
|
@ -9,19 +9,15 @@
|
||||
; CHECK-NEXT: .size: 1
|
||||
; CHECK-NEXT: .type_name: char
|
||||
; CHECK-NEXT: .value_kind: by_value
|
||||
; CHECK-NEXT: .value_type: i8
|
||||
; CHECK-NEXT: - .offset: 8
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_x
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .offset: 16
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_y
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .offset: 24
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_z
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NOT: .value_kind: hidden_default_queue
|
||||
; CHECK-NOT: .value_kind: hidden_completion_action
|
||||
; CHECK: .language: OpenCL C
|
||||
@ -42,34 +38,27 @@ define amdgpu_kernel void @test_non_enqueue_kernel_caller(i8 %a) #0
|
||||
; CHECK-NEXT: .size: 1
|
||||
; CHECK-NEXT: .type_name: char
|
||||
; CHECK-NEXT: .value_kind: by_value
|
||||
; CHECK-NEXT: .value_type: i8
|
||||
; CHECK-NEXT: - .offset: 8
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_x
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .offset: 16
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_y
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .offset: 24
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_z
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .offset: 32
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_none
|
||||
; CHECK-NEXT: .value_type: i8
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .offset: 40
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_default_queue
|
||||
; CHECK-NEXT: .value_type: i8
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .offset: 48
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_completion_action
|
||||
; CHECK-NEXT: .value_type: i8
|
||||
; CHECK: .language: OpenCL C
|
||||
; CHECK-NEXT: .language_version:
|
||||
; CHECK-NEXT: - 2
|
||||
|
@ -16,20 +16,16 @@
|
||||
; CHECK-NEXT: Size: 1
|
||||
; CHECK-NEXT: Align: 1
|
||||
; CHECK-NEXT: ValueKind: ByValue
|
||||
; CHECK-NEXT: ValueType: I8
|
||||
; CHECK-NEXT: AccQual: Default
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NOT: ValueKind: HiddenDefaultQueue
|
||||
; CHECK-NOT: ValueKind: HiddenCompletionAction
|
||||
define amdgpu_kernel void @test_non_enqueue_kernel_caller(i8 %a) #0
|
||||
@ -48,34 +44,27 @@ define amdgpu_kernel void @test_non_enqueue_kernel_caller(i8 %a) #0
|
||||
; CHECK-NEXT: Size: 1
|
||||
; CHECK-NEXT: Align: 1
|
||||
; CHECK-NEXT: ValueKind: ByValue
|
||||
; CHECK-NEXT: ValueType: I8
|
||||
; CHECK-NEXT: AccQual: Default
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenNone
|
||||
; CHECK-NEXT: ValueType: I8
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenDefaultQueue
|
||||
; CHECK-NEXT: ValueType: I8
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenCompletionAction
|
||||
; CHECK-NEXT: ValueType: I8
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
define amdgpu_kernel void @test_enqueue_kernel_caller(i8 %a) #1
|
||||
!kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -11,19 +11,16 @@
|
||||
; CHECK-NEXT: .offset: 0
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .name: a
|
||||
; CHECK-NEXT: .offset: 8
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .name: b
|
||||
; CHECK-NEXT: .offset: 16
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK: .name: test0
|
||||
; CHECK: .symbol: test0.kd
|
||||
define amdgpu_kernel void @test0(
|
||||
@ -44,23 +41,19 @@ entry:
|
||||
; CHECK-NEXT: .offset: 0
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .name: a
|
||||
; CHECK-NEXT: .offset: 8
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .name: b
|
||||
; CHECK-NEXT: .offset: 16
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .offset: 24
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_x
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK: .name: test8
|
||||
; CHECK: .symbol: test8.kd
|
||||
define amdgpu_kernel void @test8(
|
||||
@ -81,27 +74,22 @@ entry:
|
||||
; CHECK-NEXT: .offset: 0
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .name: a
|
||||
; CHECK-NEXT: .offset: 8
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .name: b
|
||||
; CHECK-NEXT: .offset: 16
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .offset: 24
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_x
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .offset: 32
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_y
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK: .name: test16
|
||||
; CHECK: .symbol: test16.kd
|
||||
define amdgpu_kernel void @test16(
|
||||
@ -122,31 +110,25 @@ entry:
|
||||
; CHECK-NEXT: .offset: 0
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .name: a
|
||||
; CHECK-NEXT: .offset: 8
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .name: b
|
||||
; CHECK-NEXT: .offset: 16
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .offset: 24
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_x
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .offset: 32
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_y
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .offset: 40
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_z
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK: .name: test24
|
||||
; CHECK: .symbol: test24.kd
|
||||
define amdgpu_kernel void @test24(
|
||||
@ -167,36 +149,29 @@ entry:
|
||||
; CHECK-NEXT: .offset: 0
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .name: a
|
||||
; CHECK-NEXT: .offset: 8
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .name: b
|
||||
; CHECK-NEXT: .offset: 16
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .offset: 24
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_x
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .offset: 32
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_y
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .offset: 40
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_z
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .offset: 48
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_none
|
||||
; CHECK-NEXT: .value_type: i8
|
||||
; CHECK: .name: test32
|
||||
; CHECK: .symbol: test32.kd
|
||||
define amdgpu_kernel void @test32(
|
||||
@ -217,46 +192,37 @@ entry:
|
||||
; CHECK-NEXT: .offset: 0
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .name: a
|
||||
; CHECK-NEXT: .offset: 8
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .name: b
|
||||
; CHECK-NEXT: .offset: 16
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .offset: 24
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_x
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .offset: 32
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_y
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .offset: 40
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_z
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .offset: 48
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_none
|
||||
; CHECK-NEXT: .value_type: i8
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .offset: 56
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_none
|
||||
; CHECK-NEXT: .value_type: i8
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .offset: 64
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_none
|
||||
; CHECK-NEXT: .value_type: i8
|
||||
; CHECK: .name: test48
|
||||
; CHECK: .symbol: test48.kd
|
||||
define amdgpu_kernel void @test48(
|
||||
@ -277,51 +243,41 @@ entry:
|
||||
; CHECK-NEXT: .offset: 0
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .name: a
|
||||
; CHECK-NEXT: .offset: 8
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .name: b
|
||||
; CHECK-NEXT: .offset: 16
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: global_buffer
|
||||
; CHECK-NEXT: .value_type: f16
|
||||
; CHECK-NEXT: - .offset: 24
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_x
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .offset: 32
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_y
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .offset: 40
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_z
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .offset: 48
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_none
|
||||
; CHECK-NEXT: .value_type: i8
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .offset: 56
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_none
|
||||
; CHECK-NEXT: .value_type: i8
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .offset: 64
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_none
|
||||
; CHECK-NEXT: .value_type: i8
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .offset: 72
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_multigrid_sync_arg
|
||||
; CHECK-NEXT: .value_type: i8
|
||||
; CHECK: .name: test56
|
||||
; CHECK: .symbol: test56.kd
|
||||
define amdgpu_kernel void @test56(
|
||||
|
@ -13,19 +13,16 @@
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Name: a
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Name: b
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: CodeProps:
|
||||
define amdgpu_kernel void @test0(
|
||||
@ -47,24 +44,20 @@ entry:
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Name: a
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Name: b
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: CodeProps:
|
||||
define amdgpu_kernel void @test8(
|
||||
half addrspace(1)* %r,
|
||||
@ -85,28 +78,23 @@ entry:
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Name: a
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Name: b
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: CodeProps:
|
||||
define amdgpu_kernel void @test16(
|
||||
half addrspace(1)* %r,
|
||||
@ -127,32 +115,26 @@ entry:
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Name: a
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Name: b
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: CodeProps:
|
||||
define amdgpu_kernel void @test24(
|
||||
half addrspace(1)* %r,
|
||||
@ -173,36 +155,29 @@ entry:
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Name: a
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Name: b
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenNone
|
||||
; CHECK-NEXT: ValueType: I8
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: CodeProps:
|
||||
define amdgpu_kernel void @test32(
|
||||
@ -224,46 +199,37 @@ entry:
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Name: a
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Name: b
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenNone
|
||||
; CHECK-NEXT: ValueType: I8
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenNone
|
||||
; CHECK-NEXT: ValueType: I8
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenNone
|
||||
; CHECK-NEXT: ValueType: I8
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: CodeProps:
|
||||
define amdgpu_kernel void @test48(
|
||||
@ -285,51 +251,41 @@ entry:
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Name: a
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Name: b
|
||||
; CHECK-NEXT: Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: GlobalBuffer
|
||||
; CHECK-NEXT: ValueType: F16
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenNone
|
||||
; CHECK-NEXT: ValueType: I8
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenNone
|
||||
; CHECK-NEXT: ValueType: I8
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenNone
|
||||
; CHECK-NEXT: ValueType: I8
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenMultiGridSyncArg
|
||||
; CHECK-NEXT: ValueType: I8
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NEXT: CodeProps:
|
||||
define amdgpu_kernel void @test56(
|
||||
|
@ -9,19 +9,15 @@
|
||||
; CHECK-NEXT: .size: 1
|
||||
; CHECK-NEXT: .type_name: char
|
||||
; CHECK-NEXT: .value_kind: by_value
|
||||
; CHECK-NEXT: .value_type: i8
|
||||
; CHECK-NEXT: - .offset: 8
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_x
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .offset: 16
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_y
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .offset: 24
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_z
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
|
||||
; CHECK-NOT: .value_kind: hidden_hostcall_buffer
|
||||
|
||||
|
@ -15,20 +15,16 @@
|
||||
; CHECK-NEXT: Size: 1
|
||||
; CHECK-NEXT: Align: 1
|
||||
; CHECK-NEXT: ValueKind: ByValue
|
||||
; CHECK-NEXT: ValueType: I8
|
||||
; CHECK-NEXT: AccQual: Default
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NOT: ValueKind: HiddenHostcallBuffer
|
||||
; CHECK-NOT: ValueKind: HiddenDefaultQueue
|
||||
; CHECK-NOT: ValueKind: HiddenCompletionAction
|
||||
|
@ -9,24 +9,19 @@
|
||||
; CHECK-NEXT: .size: 1
|
||||
; CHECK-NEXT: .type_name: char
|
||||
; CHECK-NEXT: .value_kind: by_value
|
||||
; CHECK-NEXT: .value_type: i8
|
||||
; CHECK-NEXT: - .offset: 8
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_x
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .offset: 16
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_y
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .offset: 24
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_global_offset_z
|
||||
; CHECK-NEXT: .value_type: i64
|
||||
; CHECK-NEXT: - .address_space: global
|
||||
; CHECK-NEXT: .offset: 32
|
||||
; CHECK-NEXT: .size: 8
|
||||
; CHECK-NEXT: .value_kind: hidden_hostcall_buffer
|
||||
; CHECK-NEXT: .value_type: i8
|
||||
; CHECK: .language: OpenCL C
|
||||
; CHECK-NEXT: .language_version:
|
||||
; CHECK-NEXT: - 2
|
||||
|
@ -15,24 +15,19 @@
|
||||
; CHECK-NEXT: Size: 1
|
||||
; CHECK-NEXT: Align: 1
|
||||
; CHECK-NEXT: ValueKind: ByValue
|
||||
; CHECK-NEXT: ValueType: I8
|
||||
; CHECK-NEXT: AccQual: Default
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
|
||||
; CHECK-NEXT: ValueType: I64
|
||||
; CHECK-NEXT: - Size: 8
|
||||
; CHECK-NEXT: Align: 8
|
||||
; CHECK-NEXT: ValueKind: HiddenHostcallBuffer
|
||||
; CHECK-NEXT: ValueType: I8
|
||||
; CHECK-NEXT: AddrSpaceQual: Global
|
||||
; CHECK-NOT: ValueKind: HiddenDefaultQueue
|
||||
; CHECK-NOT: ValueKind: HiddenCompletionAction
|
||||
|
@ -16,92 +16,80 @@
|
||||
%opencl.image3d_t = type opaque
|
||||
|
||||
; CHECK: ---
|
||||
; CHECK: amdhsa.kernels:
|
||||
; CHECK: - .args:
|
||||
; CHECK: amdhsa.kernels:
|
||||
; CHECK: - .args:
|
||||
; CHECK: - .address_space: global
|
||||
; CHECK: .name: a
|
||||
; CHECK: .offset: 0
|
||||
; CHECK: .size: 8
|
||||
; CHECK: .type_name: image1d_t
|
||||
; CHECK: .value_kind: image
|
||||
; CHECK: .value_type: struct
|
||||
; CHECK: - .address_space: global
|
||||
; CHECK: .name: b
|
||||
; CHECK: .offset: 8
|
||||
; CHECK: .size: 8
|
||||
; CHECK: .type_name: image1d_array_t
|
||||
; CHECK: .value_kind: image
|
||||
; CHECK: .value_type: struct
|
||||
; CHECK: - .address_space: global
|
||||
; CHECK: .name: c
|
||||
; CHECK: .offset: 16
|
||||
; CHECK: .size: 8
|
||||
; CHECK: .type_name: image1d_buffer_t
|
||||
; CHECK: .value_kind: image
|
||||
; CHECK: .value_type: struct
|
||||
; CHECK: - .address_space: global
|
||||
; CHECK: .name: d
|
||||
; CHECK: .offset: 24
|
||||
; CHECK: .size: 8
|
||||
; CHECK: .type_name: image2d_t
|
||||
; CHECK: .value_kind: image
|
||||
; CHECK: .value_type: struct
|
||||
; CHECK: - .address_space: global
|
||||
; CHECK: .name: e
|
||||
; CHECK: .offset: 32
|
||||
; CHECK: .size: 8
|
||||
; CHECK: .type_name: image2d_array_t
|
||||
; CHECK: .value_kind: image
|
||||
; CHECK: .value_type: struct
|
||||
; CHECK: - .address_space: global
|
||||
; CHECK: .name: f
|
||||
; CHECK: .offset: 40
|
||||
; CHECK: .size: 8
|
||||
; CHECK: .type_name: image2d_array_depth_t
|
||||
; CHECK: .value_kind: image
|
||||
; CHECK: .value_type: struct
|
||||
; CHECK: - .address_space: global
|
||||
; CHECK: .name: g
|
||||
; CHECK: .offset: 48
|
||||
; CHECK: .size: 8
|
||||
; CHECK: .type_name: image2d_array_msaa_t
|
||||
; CHECK: .value_kind: image
|
||||
; CHECK: .value_type: struct
|
||||
; CHECK: - .address_space: global
|
||||
; CHECK: .name: h
|
||||
; CHECK: .offset: 56
|
||||
; CHECK: .size: 8
|
||||
; CHECK: .type_name: image2d_array_msaa_depth_t
|
||||
; CHECK: .value_kind: image
|
||||
; CHECK: .value_type: struct
|
||||
; CHECK: - .address_space: global
|
||||
; CHECK: .name: i
|
||||
; CHECK: .offset: 64
|
||||
; CHECK: .size: 8
|
||||
; CHECK: .type_name: image2d_depth_t
|
||||
; CHECK: .value_kind: image
|
||||
; CHECK: .value_type: struct
|
||||
; CHECK: - .address_space: global
|
||||
; CHECK: .name: j
|
||||
; CHECK: .offset: 72
|
||||
; CHECK: .size: 8
|
||||
; CHECK: .type_name: image2d_msaa_t
|
||||
; CHECK: .value_kind: image
|
||||
; CHECK: .value_type: struct
|
||||
; CHECK: - .address_space: global
|
||||
; CHECK: .name: k
|
||||
; CHECK: .offset: 80
|
||||
; CHECK: .size: 8
|
||||
; CHECK: .type_name: image2d_msaa_depth_t
|
||||
; CHECK: .value_kind: image
|
||||
; CHECK: .value_type: struct
|
||||
; CHECK: - .address_space: global
|
||||
; CHECK: .name: l
|
||||
; CHECK: .offset: 88
|
||||
; CHECK: .size: 8
|
||||
; CHECK: .type_name: image3d_t
|
||||
; CHECK: .value_kind: image
|
||||
; CHECK: .value_type: struct
|
||||
define amdgpu_kernel void @test(%opencl.image1d_t addrspace(1)* %a,
|
||||
%opencl.image1d_array_t addrspace(1)* %b,
|
||||
%opencl.image1d_buffer_t addrspace(1)* %c,
|
||||
|
@ -2,6 +2,9 @@
|
||||
// RUN: llvm-mc -triple=amdgcn-amd-amdhsa -mcpu=gfx800 -mattr=-code-object-v3 -show-encoding %s | FileCheck --check-prefix=CHECK --check-prefix=GFX800 %s
|
||||
// RUN: llvm-mc -triple=amdgcn-amd-amdhsa -mcpu=gfx900 -mattr=-code-object-v3 -show-encoding %s | FileCheck --check-prefix=CHECK --check-prefix=GFX900 %s
|
||||
|
||||
// The legacy ValueType field should be parsed without error, but not
|
||||
// re-emitted.
|
||||
|
||||
// CHECK: .amd_amdgpu_hsa_metadata
|
||||
// CHECK: Version: [ 1, 0 ]
|
||||
// CHECK: Printf:
|
||||
@ -17,24 +20,19 @@
|
||||
// CHECK: Size: 1
|
||||
// CHECK: Align: 1
|
||||
// CHECK: ValueKind: ByValue
|
||||
// CHECK: ValueType: I8
|
||||
// CHECK: AccQual: Default
|
||||
// CHECK: - Size: 8
|
||||
// CHECK: Align: 8
|
||||
// CHECK: ValueKind: HiddenGlobalOffsetX
|
||||
// CHECK: ValueType: I64
|
||||
// CHECK: - Size: 8
|
||||
// CHECK: Align: 8
|
||||
// CHECK: ValueKind: HiddenGlobalOffsetY
|
||||
// CHECK: ValueType: I64
|
||||
// CHECK: - Size: 8
|
||||
// CHECK: Align: 8
|
||||
// CHECK: ValueKind: HiddenGlobalOffsetZ
|
||||
// CHECK: ValueType: I64
|
||||
// CHECK: - Size: 8
|
||||
// CHECK: Align: 8
|
||||
// CHECK: ValueKind: HiddenPrintfBuffer
|
||||
// CHECK: ValueType: I8
|
||||
// CHECK: AddrSpaceQual: Global
|
||||
// CHECK: .end_amd_amdgpu_hsa_metadata
|
||||
.amd_amdgpu_hsa_metadata
|
||||
|
Loading…
Reference in New Issue
Block a user