From 86cb563ec23894a258dc898e0a8c390035d924e9 Mon Sep 17 00:00:00 2001 From: Fraser Cormack Date: Tue, 20 May 2025 09:59:08 +0100 Subject: [PATCH 1/2] [libspirv] Define schar overloads via remangling; not source We were previously achieving the signed char builtin definitions in libspirv via one of two ways. The first was explicitly definining schar overloads of builtins in the source. The second was by remangling 'char' builtins to one of schar or uchar, depending on the host platform. Since we are defining our builtins in OpenCL C, the plain 'char' type is already a signed type. This presents us with the opportunity to achieve our desired schar builtins solely through remangling. The primary idea is to reduce our libclc/libspirv diff with upstream. We also have the option to introduce signed char builtins upstream. As it stands the schar problem isn't far from the 'half' mangling problem that we also now deal with purely in the remangler. --- clang/lib/Sema/SPIRVBuiltins.td | 19 +- clang/lib/Sema/SemaLookup.cpp | 5 + libclc/clc/include/clc/clc_as_type.h | 7 - libclc/clc/include/clc/clc_convert.h | 2 - libclc/clc/include/clc/clctypes.h | 7 - libclc/clc/include/clc/integer/gentype.inc | 198 +----------------- libclc/clc/include/clc/math/gentype.inc | 4 - libclc/clc/lib/generic/integer/clc_ctz.cl | 5 - libclc/clc/lib/generic/integer/clc_mad_sat.cl | 1 - libclc/clc/lib/generic/integer/clc_mul_hi.cl | 1 - libclc/generic/include/as_type.h | 6 - libclc/generic/include/core/convert.h | 2 - libclc/generic/lib/gen_convert.py | 11 +- .../include/libspirv/async/gentype.inc | 40 ---- libclc/libspirv/include/libspirv/lp64_types.h | 12 +- .../libspirv/ptx-nvidiacl/async/gentype.inc | 23 -- libclc/libspirv/lib/generic/gen_convert.py | 6 - .../lib/generic/gen_convert_common.py | 11 +- .../lib/generic/geometric/normalize.cl | 7 +- libclc/libspirv/lib/generic/integer/clz.cl | 5 - .../libspirv/lib/generic/integer/upsample.cl | 1 - libclc/libspirv/lib/generic/math/fract.cl | 1 + libclc/libspirv/lib/generic/math/fract.inc | 15 +- libclc/libspirv/lib/generic/math/maxmag.cl | 3 +- libclc/libspirv/lib/generic/math/maxmag.inc | 25 +-- libclc/libspirv/lib/generic/math/minmag.cl | 3 +- libclc/libspirv/lib/generic/math/minmag.inc | 18 +- libclc/libspirv/lib/generic/misc/shuffle.cl | 1 - libclc/libspirv/lib/generic/misc/shuffle2.cl | 1 - libclc/libspirv/lib/generic/relational/all.cl | 2 +- libclc/libspirv/lib/generic/relational/any.cl | 2 +- .../generic/relational/genbinrelational.inc | 6 +- .../lib/generic/relational/genunary.inc | 6 +- libclc/libspirv/lib/generic/shared/vload.cl | 2 +- libclc/libspirv/lib/generic/shared/vstore.cl | 2 +- .../lib/native_cpu/integer/popcount.cl | 26 ++- .../async/async_work_group_strided_copy.cl | 6 - .../lib/ptx-nvidiacl/integer/mul_hi.cl | 3 - .../lib/ptx-nvidiacl/relational/isfinite.cl | 6 +- .../lib/ptx-nvidiacl/relational/isinf.cl | 6 +- .../lib/ptx-nvidiacl/relational/isnan.cl | 6 +- 41 files changed, 87 insertions(+), 426 deletions(-) diff --git a/clang/lib/Sema/SPIRVBuiltins.td b/clang/lib/Sema/SPIRVBuiltins.td index ef3d18a682c58..d5a0e52e3404e 100644 --- a/clang/lib/Sema/SPIRVBuiltins.td +++ b/clang/lib/Sema/SPIRVBuiltins.td @@ -322,8 +322,7 @@ class ConstOCLSPVBuiltin _Signature> : // OpenCL v1.0/1.2/2.0 s6.1.1: Built-in Scalar Data Types. def Bool : IntType<"bool", QualType<"Context.BoolTy">, 1>; def TrueChar : IntType<"_char", QualType<"Context.CharTy", 0, 1>, 8>; -def Char : IntType<"char", QualType<"Context.SignedCharTy", 0, 1>, 8>; -def SChar : IntType<"schar", QualType<"Context.SignedCharTy", 0, 1>, 8>; +def Char : IntType<"char", QualTypeFromFunction<"GetCharType", 0, 1>, 8>; def UChar : UIntType<"uchar", QualType<"Context.UnsignedCharTy">, 8>; def Short : IntType<"short", QualType<"Context.ShortTy", 0, 1>, 16>; def UShort : UIntType<"ushort", QualType<"Context.UnsignedShortTy">, 16>; @@ -412,7 +411,7 @@ def IntLongFloatGenType1 : GenericType<"IntLongFloatGenType1", TLIntLongFloats // GenType definitions for every single base type (e.g. fp32 only). // Names are like: GenTypeFloatVecAndScalar. -foreach Type = [Char, UChar, SChar, Short, UShort, +foreach Type = [Char, UChar, Short, UShort, Int, UInt, Long, ULong, Float, Double, Half] in { foreach VecSizes = [VecAndScalar, VecNoScalar] in { @@ -872,16 +871,16 @@ foreach name = ["Dot"] in { } foreach name = ["Any", "All"] in { - def : SPVBuiltin; + def : SPVBuiltin; } foreach name = ["IsNan", "IsInf", "IsFinite", "IsNormal", "SignBitSet"] in { def : SPVBuiltin; def : SPVBuiltin; def : SPVBuiltin; - def : SPVBuiltin; - def : SPVBuiltin; - def : SPVBuiltin; + def : SPVBuiltin; + def : SPVBuiltin; + def : SPVBuiltin; } foreach name = ["LessOrGreater", @@ -895,9 +894,9 @@ foreach name = ["LessOrGreater", def : SPVBuiltin; def : SPVBuiltin; def : SPVBuiltin; - def : SPVBuiltin; - def : SPVBuiltin; - def : SPVBuiltin; + def : SPVBuiltin; + def : SPVBuiltin; + def : SPVBuiltin; } foreach name = ["BitCount"] in { diff --git a/clang/lib/Sema/SemaLookup.cpp b/clang/lib/Sema/SemaLookup.cpp index 2d687ffb575c4..005da53862ff6 100644 --- a/clang/lib/Sema/SemaLookup.cpp +++ b/clang/lib/Sema/SemaLookup.cpp @@ -51,6 +51,7 @@ #include #include +static inline clang::QualType GetCharType(clang::ASTContext &Context); static inline clang::QualType GetFloat16Type(clang::ASTContext &Context); #include "OpenCLBuiltins.inc" @@ -701,6 +702,10 @@ LLVM_DUMP_METHOD void LookupResult::dump() { D->dump(); } +static inline QualType GetCharType(clang::ASTContext &Context) { + return Context.getLangOpts().OpenCL ? Context.CharTy : Context.SignedCharTy; +} + static inline QualType GetFloat16Type(clang::ASTContext &Context) { return Context.getLangOpts().OpenCL ? Context.HalfTy : Context.Float16Ty; } diff --git a/libclc/clc/include/clc/clc_as_type.h b/libclc/clc/include/clc/clc_as_type.h index 2040f84285f97..62fee71da8b02 100644 --- a/libclc/clc/include/clc/clc_as_type.h +++ b/libclc/clc/include/clc/clc_as_type.h @@ -10,7 +10,6 @@ #define __CLC_CLC_AS_TYPE_H__ #define __clc_as_char(x) __builtin_astype(x, char) -#define __clc_as_schar(x) __builtin_astype(x, schar) #define __clc_as_uchar(x) __builtin_astype(x, uchar) #define __clc_as_short(x) __builtin_astype(x, short) #define __clc_as_ushort(x) __builtin_astype(x, ushort) @@ -21,7 +20,6 @@ #define __clc_as_float(x) __builtin_astype(x, float) #define __clc_as_char2(x) __builtin_astype(x, char2) -#define __clc_as_schar2(x) __builtin_astype(x, schar2) #define __clc_as_uchar2(x) __builtin_astype(x, uchar2) #define __clc_as_short2(x) __builtin_astype(x, short2) #define __clc_as_ushort2(x) __builtin_astype(x, ushort2) @@ -32,7 +30,6 @@ #define __clc_as_float2(x) __builtin_astype(x, float2) #define __clc_as_char3(x) __builtin_astype(x, char3) -#define __clc_as_schar3(x) __builtin_astype(x, schar3) #define __clc_as_uchar3(x) __builtin_astype(x, uchar3) #define __clc_as_short3(x) __builtin_astype(x, short3) #define __clc_as_ushort3(x) __builtin_astype(x, ushort3) @@ -43,7 +40,6 @@ #define __clc_as_float3(x) __builtin_astype(x, float3) #define __clc_as_char4(x) __builtin_astype(x, char4) -#define __clc_as_schar4(x) __builtin_astype(x, schar4) #define __clc_as_uchar4(x) __builtin_astype(x, uchar4) #define __clc_as_short4(x) __builtin_astype(x, short4) #define __clc_as_ushort4(x) __builtin_astype(x, ushort4) @@ -54,9 +50,7 @@ #define __clc_as_float4(x) __builtin_astype(x, float4) #define __clc_as_char8(x) __builtin_astype(x, char8) -#define __clc_as_schar8(x) __builtin_astype(x, schar8) #define __clc_as_uchar8(x) __builtin_astype(x, uchar8) -#define __clc_as_schar8(x) __builtin_astype(x, schar8) #define __clc_as_short8(x) __builtin_astype(x, short8) #define __clc_as_ushort8(x) __builtin_astype(x, ushort8) #define __clc_as_int8(x) __builtin_astype(x, int8) @@ -66,7 +60,6 @@ #define __clc_as_float8(x) __builtin_astype(x, float8) #define __clc_as_char16(x) __builtin_astype(x, char16) -#define __clc_as_schar16(x) __builtin_astype(x, schar16) #define __clc_as_uchar16(x) __builtin_astype(x, uchar16) #define __clc_as_short16(x) __builtin_astype(x, short16) #define __clc_as_ushort16(x) __builtin_astype(x, ushort16) diff --git a/libclc/clc/include/clc/clc_convert.h b/libclc/clc/include/clc/clc_convert.h index 3ca53e944280a..ab41e5abb9d6c 100644 --- a/libclc/clc/include/clc/clc_convert.h +++ b/libclc/clc/include/clc/clc_convert.h @@ -24,7 +24,6 @@ #define _CLC_VECTOR_CONVERT_FROM1(FROM_TYPE, SUFFIX) \ _CLC_VECTOR_CONVERT_DECL(FROM_TYPE, char, SUFFIX) \ - _CLC_VECTOR_CONVERT_DECL(FROM_TYPE, schar, SUFFIX) \ _CLC_VECTOR_CONVERT_DECL(FROM_TYPE, uchar, SUFFIX) \ _CLC_VECTOR_CONVERT_DECL(FROM_TYPE, int, SUFFIX) \ _CLC_VECTOR_CONVERT_DECL(FROM_TYPE, uint, SUFFIX) \ @@ -58,7 +57,6 @@ #define _CLC_VECTOR_CONVERT_TO1(SUFFIX) \ _CLC_VECTOR_CONVERT_FROM(char, SUFFIX) \ - _CLC_VECTOR_CONVERT_FROM(schar, SUFFIX) \ _CLC_VECTOR_CONVERT_FROM(uchar, SUFFIX) \ _CLC_VECTOR_CONVERT_FROM(int, SUFFIX) \ _CLC_VECTOR_CONVERT_FROM(uint, SUFFIX) \ diff --git a/libclc/clc/include/clc/clctypes.h b/libclc/clc/include/clc/clctypes.h index 98294e27a5993..2187c2535963b 100644 --- a/libclc/clc/include/clc/clctypes.h +++ b/libclc/clc/include/clc/clctypes.h @@ -11,7 +11,6 @@ /* 6.1.1 Built-in Scalar Data Types */ -typedef signed char schar; typedef unsigned char uchar; typedef unsigned short ushort; typedef unsigned int uint; @@ -40,12 +39,6 @@ typedef __attribute__((ext_vector_type(4))) char char4; typedef __attribute__((ext_vector_type(8))) char char8; typedef __attribute__((ext_vector_type(16))) char char16; -typedef __attribute__((ext_vector_type(2))) schar schar2; -typedef __attribute__((ext_vector_type(3))) schar schar3; -typedef __attribute__((ext_vector_type(4))) schar schar4; -typedef __attribute__((ext_vector_type(8))) schar schar8; -typedef __attribute__((ext_vector_type(16))) schar schar16; - typedef __attribute__((ext_vector_type(2))) uchar uchar2; typedef __attribute__((ext_vector_type(3))) uchar uchar3; typedef __attribute__((ext_vector_type(4))) uchar uchar4; diff --git a/libclc/clc/include/clc/integer/gentype.inc b/libclc/clc/include/clc/integer/gentype.inc index f6a5f83967ccc..acca8632de32a 100644 --- a/libclc/clc/include/clc/integer/gentype.inc +++ b/libclc/clc/include/clc/integer/gentype.inc @@ -5,6 +5,7 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// + #include #include #include @@ -20,13 +21,11 @@ // These 2 defines only change when switching between data sizes or base types // to keep this file manageable. - #define __CLC_GENSIZE 8 #define __CLC_SCALAR_GENTYPE char #define __CLC_GEN_S #define __CLC_GENTYPE char -#define __CLC_SPIRV_INTERFACE_GENTYPE schar #define __CLC_U_GENTYPE uchar #define __CLC_S_GENTYPE char #define __CLC_SCALAR @@ -39,12 +38,10 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_VECSIZE_OR_1 __CLC_VECSIZE #define __CLC_GENTYPE char2 -#define __CLC_SPIRV_INTERFACE_GENTYPE schar2 #define __CLC_U_GENTYPE uchar2 #define __CLC_S_GENTYPE char2 #define __CLC_VECSIZE 2 @@ -53,10 +50,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE char3 -#define __CLC_SPIRV_INTERFACE_GENTYPE schar3 #define __CLC_U_GENTYPE uchar3 #define __CLC_S_GENTYPE char3 #define __CLC_VECSIZE 3 @@ -65,10 +60,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE char4 -#define __CLC_SPIRV_INTERFACE_GENTYPE schar4 #define __CLC_U_GENTYPE uchar4 #define __CLC_S_GENTYPE char4 #define __CLC_VECSIZE 4 @@ -77,10 +70,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE char8 -#define __CLC_SPIRV_INTERFACE_GENTYPE schar8 #define __CLC_U_GENTYPE uchar8 #define __CLC_S_GENTYPE char8 #define __CLC_VECSIZE 8 @@ -89,10 +80,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE char16 -#define __CLC_SPIRV_INTERFACE_GENTYPE schar16 #define __CLC_U_GENTYPE uchar16 #define __CLC_S_GENTYPE char16 #define __CLC_VECSIZE 16 @@ -102,94 +91,6 @@ #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE #undef __CLC_VECSIZE_OR_1 -#undef __CLC_SPIRV_INTERFACE_GENTYPE - -#ifndef __CLC_NO_SCHAR -#undef __CLC_GEN_S -#undef __CLC_SCALAR_GENTYPE -#define __CLC_SCALAR_GENTYPE schar -#define __CLC_GEN_S - -#define __CLC_GENTYPE schar -#define __CLC_SPIRV_INTERFACE_GENTYPE schar -#define __CLC_U_GENTYPE uchar -#define __CLC_S_GENTYPE schar -#define __CLC_SCALAR -#define __CLC_VECSIZE -#define __CLC_VECSIZE_OR_1 1 -#include __CLC_BODY -#undef __CLC_VECSIZE_OR_1 -#undef __CLC_VECSIZE -#undef __CLC_SCALAR -#undef __CLC_GENTYPE -#undef __CLC_U_GENTYPE -#undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE - -#define __CLC_VECSIZE_OR_1 __CLC_VECSIZE - -#define __CLC_GENTYPE schar2 -#define __CLC_SPIRV_INTERFACE_GENTYPE schar2 -#define __CLC_U_GENTYPE uchar2 -#define __CLC_S_GENTYPE schar2 -#define __CLC_VECSIZE 2 -#include __CLC_BODY -#undef __CLC_VECSIZE -#undef __CLC_GENTYPE -#undef __CLC_U_GENTYPE -#undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE - -#define __CLC_GENTYPE schar3 -#define __CLC_SPIRV_INTERFACE_GENTYPE schar3 -#define __CLC_U_GENTYPE uchar3 -#define __CLC_S_GENTYPE schar3 -#define __CLC_VECSIZE 3 -#include __CLC_BODY -#undef __CLC_VECSIZE -#undef __CLC_GENTYPE -#undef __CLC_U_GENTYPE -#undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE - -#define __CLC_GENTYPE schar4 -#define __CLC_SPIRV_INTERFACE_GENTYPE schar4 -#define __CLC_U_GENTYPE uchar4 -#define __CLC_S_GENTYPE schar4 -#define __CLC_VECSIZE 4 -#include __CLC_BODY -#undef __CLC_VECSIZE -#undef __CLC_GENTYPE -#undef __CLC_U_GENTYPE -#undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE - -#define __CLC_GENTYPE schar8 -#define __CLC_SPIRV_INTERFACE_GENTYPE schar8 -#define __CLC_U_GENTYPE uchar8 -#define __CLC_S_GENTYPE schar8 -#define __CLC_VECSIZE 8 -#include __CLC_BODY -#undef __CLC_VECSIZE -#undef __CLC_GENTYPE -#undef __CLC_U_GENTYPE -#undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE - -#define __CLC_GENTYPE schar16 -#define __CLC_SPIRV_INTERFACE_GENTYPE schar16 -#define __CLC_U_GENTYPE uchar16 -#define __CLC_S_GENTYPE schar16 -#define __CLC_VECSIZE 16 -#include __CLC_BODY -#undef __CLC_VECSIZE -#undef __CLC_GENTYPE -#undef __CLC_U_GENTYPE -#undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE -#undef __CLC_VECSIZE_OR_1 - -#endif // __CLC_NO_SCHAR #undef __CLC_SCALAR_GENTYPE #define __CLC_SCALAR_GENTYPE uchar @@ -197,9 +98,8 @@ #define __CLC_GEN_U #define __CLC_GENTYPE uchar -#define __CLC_SPIRV_INTERFACE_GENTYPE uchar #define __CLC_U_GENTYPE uchar -#define __CLC_S_GENTYPE schar +#define __CLC_S_GENTYPE char #define __CLC_SCALAR #define __CLC_VECSIZE #define __CLC_VECSIZE_OR_1 1 @@ -210,69 +110,58 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_VECSIZE_OR_1 __CLC_VECSIZE #define __CLC_GENTYPE uchar2 -#define __CLC_SPIRV_INTERFACE_GENTYPE uchar2 #define __CLC_U_GENTYPE uchar2 -#define __CLC_S_GENTYPE schar2 +#define __CLC_S_GENTYPE char2 #define __CLC_VECSIZE 2 #include __CLC_BODY #undef __CLC_VECSIZE #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE uchar3 -#define __CLC_SPIRV_INTERFACE_GENTYPE uchar3 #define __CLC_U_GENTYPE uchar3 -#define __CLC_S_GENTYPE schar3 +#define __CLC_S_GENTYPE char3 #define __CLC_VECSIZE 3 #include __CLC_BODY #undef __CLC_VECSIZE #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE uchar4 -#define __CLC_SPIRV_INTERFACE_GENTYPE uchar4 #define __CLC_U_GENTYPE uchar4 -#define __CLC_S_GENTYPE schar4 +#define __CLC_S_GENTYPE char4 #define __CLC_VECSIZE 4 #include __CLC_BODY #undef __CLC_VECSIZE #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE uchar8 -#define __CLC_SPIRV_INTERFACE_GENTYPE uchar8 #define __CLC_U_GENTYPE uchar8 -#define __CLC_S_GENTYPE schar8 +#define __CLC_S_GENTYPE char8 #define __CLC_VECSIZE 8 #include __CLC_BODY #undef __CLC_VECSIZE #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE uchar16 -#define __CLC_SPIRV_INTERFACE_GENTYPE uchar16 #define __CLC_U_GENTYPE uchar16 -#define __CLC_S_GENTYPE schar16 +#define __CLC_S_GENTYPE char16 #define __CLC_VECSIZE 16 #include __CLC_BODY #undef __CLC_VECSIZE #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #undef __CLC_VECSIZE_OR_1 #undef __CLC_GENSIZE @@ -283,7 +172,6 @@ #define __CLC_GEN_S #define __CLC_GENTYPE short -#define __CLC_SPIRV_INTERFACE_GENTYPE short #define __CLC_U_GENTYPE ushort #define __CLC_S_GENTYPE short #define __CLC_SCALAR @@ -296,12 +184,10 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_VECSIZE_OR_1 __CLC_VECSIZE #define __CLC_GENTYPE short2 -#define __CLC_SPIRV_INTERFACE_GENTYPE short2 #define __CLC_U_GENTYPE ushort2 #define __CLC_S_GENTYPE short2 #define __CLC_VECSIZE 2 @@ -310,10 +196,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE short3 -#define __CLC_SPIRV_INTERFACE_GENTYPE short3 #define __CLC_U_GENTYPE ushort3 #define __CLC_S_GENTYPE short3 #define __CLC_VECSIZE 3 @@ -322,10 +206,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE short4 -#define __CLC_SPIRV_INTERFACE_GENTYPE short4 #define __CLC_U_GENTYPE ushort4 #define __CLC_S_GENTYPE short4 #define __CLC_VECSIZE 4 @@ -334,10 +216,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE short8 -#define __CLC_SPIRV_INTERFACE_GENTYPE short8 #define __CLC_U_GENTYPE ushort8 #define __CLC_S_GENTYPE short8 #define __CLC_VECSIZE 8 @@ -346,10 +226,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE short16 -#define __CLC_SPIRV_INTERFACE_GENTYPE short16 #define __CLC_U_GENTYPE ushort16 #define __CLC_S_GENTYPE short16 #define __CLC_VECSIZE 16 @@ -358,7 +236,6 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #undef __CLC_VECSIZE_OR_1 #undef __CLC_SCALAR_GENTYPE @@ -367,7 +244,6 @@ #define __CLC_GEN_U #define __CLC_GENTYPE ushort -#define __CLC_SPIRV_INTERFACE_GENTYPE ushort #define __CLC_U_GENTYPE ushort #define __CLC_S_GENTYPE short #define __CLC_SCALAR @@ -380,12 +256,10 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_VECSIZE_OR_1 __CLC_VECSIZE #define __CLC_GENTYPE ushort2 -#define __CLC_SPIRV_INTERFACE_GENTYPE ushort2 #define __CLC_U_GENTYPE ushort2 #define __CLC_S_GENTYPE short2 #define __CLC_VECSIZE 2 @@ -394,10 +268,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE ushort3 -#define __CLC_SPIRV_INTERFACE_GENTYPE ushort3 #define __CLC_U_GENTYPE ushort3 #define __CLC_S_GENTYPE short3 #define __CLC_VECSIZE 3 @@ -406,10 +278,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE ushort4 -#define __CLC_SPIRV_INTERFACE_GENTYPE ushort4 #define __CLC_U_GENTYPE ushort4 #define __CLC_S_GENTYPE short4 #define __CLC_VECSIZE 4 @@ -418,10 +288,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE ushort8 -#define __CLC_SPIRV_INTERFACE_GENTYPE ushort8 #define __CLC_U_GENTYPE ushort8 #define __CLC_S_GENTYPE short8 #define __CLC_VECSIZE 8 @@ -430,10 +298,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE ushort16 -#define __CLC_SPIRV_INTERFACE_GENTYPE ushort16 #define __CLC_U_GENTYPE ushort16 #define __CLC_S_GENTYPE short16 #define __CLC_VECSIZE 16 @@ -442,7 +308,6 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #undef __CLC_VECSIZE_OR_1 #undef __CLC_GENSIZE @@ -453,7 +318,6 @@ #define __CLC_GEN_S #define __CLC_GENTYPE int -#define __CLC_SPIRV_INTERFACE_GENTYPE int #define __CLC_U_GENTYPE uint #define __CLC_S_GENTYPE int #define __CLC_SCALAR @@ -466,12 +330,10 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_VECSIZE_OR_1 __CLC_VECSIZE #define __CLC_GENTYPE int2 -#define __CLC_SPIRV_INTERFACE_GENTYPE int2 #define __CLC_U_GENTYPE uint2 #define __CLC_S_GENTYPE int2 #define __CLC_VECSIZE 2 @@ -480,10 +342,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE int3 -#define __CLC_SPIRV_INTERFACE_GENTYPE int3 #define __CLC_U_GENTYPE uint3 #define __CLC_S_GENTYPE int3 #define __CLC_VECSIZE 3 @@ -492,10 +352,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE int4 -#define __CLC_SPIRV_INTERFACE_GENTYPE int4 #define __CLC_U_GENTYPE uint4 #define __CLC_S_GENTYPE int4 #define __CLC_VECSIZE 4 @@ -504,10 +362,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE int8 -#define __CLC_SPIRV_INTERFACE_GENTYPE int8 #define __CLC_U_GENTYPE uint8 #define __CLC_S_GENTYPE int8 #define __CLC_VECSIZE 8 @@ -516,10 +372,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE int16 -#define __CLC_SPIRV_INTERFACE_GENTYPE int16 #define __CLC_U_GENTYPE uint16 #define __CLC_S_GENTYPE int16 #define __CLC_VECSIZE 16 @@ -528,7 +382,6 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #undef __CLC_VECSIZE_OR_1 #undef __CLC_SCALAR_GENTYPE @@ -537,7 +390,6 @@ #define __CLC_GEN_U #define __CLC_GENTYPE uint -#define __CLC_SPIRV_INTERFACE_GENTYPE uint #define __CLC_U_GENTYPE uint #define __CLC_S_GENTYPE int #define __CLC_SCALAR @@ -550,12 +402,10 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_VECSIZE_OR_1 __CLC_VECSIZE #define __CLC_GENTYPE uint2 -#define __CLC_SPIRV_INTERFACE_GENTYPE uint2 #define __CLC_U_GENTYPE uint2 #define __CLC_S_GENTYPE int2 #define __CLC_VECSIZE 2 @@ -564,10 +414,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE uint3 -#define __CLC_SPIRV_INTERFACE_GENTYPE uint3 #define __CLC_U_GENTYPE uint3 #define __CLC_S_GENTYPE int3 #define __CLC_VECSIZE 3 @@ -576,10 +424,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE uint4 -#define __CLC_SPIRV_INTERFACE_GENTYPE uint4 #define __CLC_U_GENTYPE uint4 #define __CLC_S_GENTYPE int4 #define __CLC_VECSIZE 4 @@ -588,10 +434,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE uint8 -#define __CLC_SPIRV_INTERFACE_GENTYPE uint8 #define __CLC_U_GENTYPE uint8 #define __CLC_S_GENTYPE int8 #define __CLC_VECSIZE 8 @@ -600,10 +444,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE uint16 -#define __CLC_SPIRV_INTERFACE_GENTYPE uint16 #define __CLC_U_GENTYPE uint16 #define __CLC_S_GENTYPE int16 #define __CLC_VECSIZE 16 @@ -612,7 +454,6 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #undef __CLC_VECSIZE_OR_1 #undef __CLC_GENSIZE @@ -623,7 +464,6 @@ #define __CLC_GEN_S #define __CLC_GENTYPE long -#define __CLC_SPIRV_INTERFACE_GENTYPE long #define __CLC_U_GENTYPE ulong #define __CLC_S_GENTYPE long #define __CLC_SCALAR @@ -636,12 +476,10 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_VECSIZE_OR_1 __CLC_VECSIZE #define __CLC_GENTYPE long2 -#define __CLC_SPIRV_INTERFACE_GENTYPE long2 #define __CLC_U_GENTYPE ulong2 #define __CLC_S_GENTYPE long2 #define __CLC_VECSIZE 2 @@ -650,10 +488,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE long3 -#define __CLC_SPIRV_INTERFACE_GENTYPE long3 #define __CLC_U_GENTYPE ulong3 #define __CLC_S_GENTYPE long3 #define __CLC_VECSIZE 3 @@ -662,10 +498,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE long4 -#define __CLC_SPIRV_INTERFACE_GENTYPE long4 #define __CLC_U_GENTYPE ulong4 #define __CLC_S_GENTYPE long4 #define __CLC_VECSIZE 4 @@ -674,10 +508,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE long8 -#define __CLC_SPIRV_INTERFACE_GENTYPE long8 #define __CLC_U_GENTYPE ulong8 #define __CLC_S_GENTYPE long8 #define __CLC_VECSIZE 8 @@ -686,10 +518,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE long16 -#define __CLC_SPIRV_INTERFACE_GENTYPE long16 #define __CLC_U_GENTYPE ulong16 #define __CLC_S_GENTYPE long16 #define __CLC_VECSIZE 16 @@ -698,7 +528,6 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #undef __CLC_VECSIZE_OR_1 #undef __CLC_SCALAR_GENTYPE @@ -707,7 +536,6 @@ #define __CLC_GEN_U #define __CLC_GENTYPE ulong -#define __CLC_SPIRV_INTERFACE_GENTYPE ulong #define __CLC_U_GENTYPE ulong #define __CLC_S_GENTYPE long #define __CLC_SCALAR @@ -721,12 +549,10 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_VECSIZE_OR_1 __CLC_VECSIZE #define __CLC_GENTYPE ulong2 -#define __CLC_SPIRV_INTERFACE_GENTYPE ulong2 #define __CLC_U_GENTYPE ulong2 #define __CLC_S_GENTYPE long2 #define __CLC_VECSIZE 2 @@ -735,10 +561,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE ulong3 -#define __CLC_SPIRV_INTERFACE_GENTYPE ulong3 #define __CLC_U_GENTYPE ulong3 #define __CLC_S_GENTYPE long3 #define __CLC_VECSIZE 3 @@ -747,10 +571,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE ulong4 -#define __CLC_SPIRV_INTERFACE_GENTYPE ulong4 #define __CLC_U_GENTYPE ulong4 #define __CLC_S_GENTYPE long4 #define __CLC_VECSIZE 4 @@ -759,10 +581,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE ulong8 -#define __CLC_SPIRV_INTERFACE_GENTYPE ulong8 #define __CLC_U_GENTYPE ulong8 #define __CLC_S_GENTYPE long8 #define __CLC_VECSIZE 8 @@ -771,10 +591,8 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #define __CLC_GENTYPE ulong16 -#define __CLC_SPIRV_INTERFACE_GENTYPE ulong16 #define __CLC_U_GENTYPE ulong16 #define __CLC_S_GENTYPE long16 #define __CLC_VECSIZE 16 @@ -783,12 +601,10 @@ #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE -#undef __CLC_SPIRV_INTERFACE_GENTYPE #undef __CLC_VECSIZE_OR_1 #undef __CLC_GEN_U -#undef __CLC_CHAR #undef __CLC_GENSIZE #undef __CLC_SCALAR_GENTYPE #undef __CLC_BODY diff --git a/libclc/clc/include/clc/math/gentype.inc b/libclc/clc/include/clc/math/gentype.inc index 6cc4354f2358d..a8d8317a9cacb 100644 --- a/libclc/clc/include/clc/math/gentype.inc +++ b/libclc/clc/include/clc/math/gentype.inc @@ -20,7 +20,6 @@ #define __CLC_DOUBLEN __CLC_XCONCAT(double, __CLC_VECSIZE) #define __CLC_CHARN __CLC_XCONCAT(char, __CLC_VECSIZE) -#define __CLC_SCHARN __CLC_XCONCAT(schar, __CLC_VECSIZE) #define __CLC_SHORTN __CLC_XCONCAT(short, __CLC_VECSIZE) #define __CLC_INTN __CLC_XCONCAT(int, __CLC_VECSIZE) #define __CLC_LONGN __CLC_XCONCAT(long, __CLC_VECSIZE) @@ -35,7 +34,6 @@ #define __CLC_AS_DOUBLEN __CLC_XCONCAT(__clc_as_, __CLC_DOUBLEN) #define __CLC_AS_CHARN __CLC_XCONCAT(__clc_as_, __CLC_CHARN) -#define __CLC_AS_SCHARN __CLC_XCONCAT(__clc_as_, __CLC_SCHARN) #define __CLC_AS_SHORTN __CLC_XCONCAT(__clc_as_, __CLC_SHORTN) #define __CLC_AS_INTN __CLC_XCONCAT(__clc_as_, __CLC_INTN) #define __CLC_AS_LONGN __CLC_XCONCAT(__clc_as_, __CLC_LONGN) @@ -50,7 +48,6 @@ #define __CLC_CONVERT_DOUBLEN __CLC_XCONCAT(__clc_convert_double, __CLC_VECSIZE) #define __CLC_CONVERT_CHARN __CLC_XCONCAT(__clc_convert_, __CLC_CHARN) -#define __CLC_CONVERT_SCHARN __CLC_XCONCAT(__clc_convert_, __CLC_SCHARN) #define __CLC_CONVERT_SHORTN __CLC_XCONCAT(__clc_convert_, __CLC_SHORTN) #define __CLC_CONVERT_INTN __CLC_XCONCAT(__clc_convert_, __CLC_INTN) #define __CLC_CONVERT_LONGN __CLC_XCONCAT(__clc_convert_, __CLC_LONGN) @@ -344,7 +341,6 @@ #undef __CLC_LONGN #undef __CLC_INTN #undef __CLC_SHORTN -#undef __CLC_SCHARN #undef __CLC_CHARN #undef __CLC_DOUBLEN diff --git a/libclc/clc/lib/generic/integer/clc_ctz.cl b/libclc/clc/lib/generic/integer/clc_ctz.cl index 71c3d9ea6dd3b..50fda4a214b24 100644 --- a/libclc/clc/lib/generic/integer/clc_ctz.cl +++ b/libclc/clc/lib/generic/integer/clc_ctz.cl @@ -14,10 +14,6 @@ _CLC_OVERLOAD _CLC_DEF char __clc_ctz(char x) { return __clc_ctz(__clc_as_uchar(x)); } -_CLC_OVERLOAD _CLC_DEF schar __clc_ctz(schar x) { - return __clc_ctz(__clc_as_uchar(x)); -} - _CLC_OVERLOAD _CLC_DEF uchar __clc_ctz(uchar x) { return __builtin_ctzg(x, 8); } _CLC_OVERLOAD _CLC_DEF short __clc_ctz(short x) { @@ -43,7 +39,6 @@ _CLC_OVERLOAD _CLC_DEF ulong __clc_ctz(ulong x) { } _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, char, __clc_ctz, char) -_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, schar, __clc_ctz, schar) _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, uchar, __clc_ctz, uchar) _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, short, __clc_ctz, short) _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, ushort, __clc_ctz, ushort) diff --git a/libclc/clc/lib/generic/integer/clc_mad_sat.cl b/libclc/clc/lib/generic/integer/clc_mad_sat.cl index cb9d085d7cebc..7c6aaffe6c5c7 100644 --- a/libclc/clc/lib/generic/integer/clc_mad_sat.cl +++ b/libclc/clc/lib/generic/integer/clc_mad_sat.cl @@ -36,7 +36,6 @@ __CLC_DEFINE_SIMPLE_MAD_SAT(TYPE##16, UP_TYPE##16, LIT_PREFIX) __CLC_DEFINE_SIMPLE_MAD_SAT_ALL_TYS(char, int, CHAR) -__CLC_DEFINE_SIMPLE_MAD_SAT_ALL_TYS(schar, int, SCHAR) __CLC_DEFINE_SIMPLE_MAD_SAT_ALL_TYS(uchar, uint, UCHAR) __CLC_DEFINE_SIMPLE_MAD_SAT_ALL_TYS(short, int, SHRT) __CLC_DEFINE_SIMPLE_MAD_SAT_ALL_TYS(ushort, uint, USHRT) diff --git a/libclc/clc/lib/generic/integer/clc_mul_hi.cl b/libclc/clc/lib/generic/integer/clc_mul_hi.cl index 2cd95b299711f..117d8471fb8a3 100644 --- a/libclc/clc/lib/generic/integer/clc_mul_hi.cl +++ b/libclc/clc/lib/generic/integer/clc_mul_hi.cl @@ -114,7 +114,6 @@ _CLC_OVERLOAD _CLC_DEF ulong __clc_mul_hi(ulong x, ulong y) { #define __CLC_MUL_HI_TYPES() \ __CLC_MUL_HI_DEC_IMPL(short, char, 8) \ - __CLC_MUL_HI_DEC_IMPL(short, schar, 8) \ __CLC_MUL_HI_DEC_IMPL(ushort, uchar, 8) \ __CLC_MUL_HI_DEC_IMPL(int, short, 16) \ __CLC_MUL_HI_DEC_IMPL(uint, ushort, 16) \ diff --git a/libclc/generic/include/as_type.h b/libclc/generic/include/as_type.h index d661ff3fd89a9..b122614de1d74 100644 --- a/libclc/generic/include/as_type.h +++ b/libclc/generic/include/as_type.h @@ -9,7 +9,6 @@ //===----------------------------------------------------------------------===// #define as_char(x) __builtin_astype(x, char) -#define as_schar(x) __builtin_astype(x, schar) #define as_uchar(x) __builtin_astype(x, uchar) #define as_short(x) __builtin_astype(x, short) #define as_ushort(x) __builtin_astype(x, ushort) @@ -20,7 +19,6 @@ #define as_float(x) __builtin_astype(x, float) #define as_char2(x) __builtin_astype(x, char2) -#define as_schar2(x) __builtin_astype(x, schar2) #define as_uchar2(x) __builtin_astype(x, uchar2) #define as_short2(x) __builtin_astype(x, short2) #define as_ushort2(x) __builtin_astype(x, ushort2) @@ -31,7 +29,6 @@ #define as_float2(x) __builtin_astype(x, float2) #define as_char3(x) __builtin_astype(x, char3) -#define as_schar3(x) __builtin_astype(x, schar3) #define as_uchar3(x) __builtin_astype(x, uchar3) #define as_short3(x) __builtin_astype(x, short3) #define as_ushort3(x) __builtin_astype(x, ushort3) @@ -42,7 +39,6 @@ #define as_float3(x) __builtin_astype(x, float3) #define as_char4(x) __builtin_astype(x, char4) -#define as_schar4(x) __builtin_astype(x, schar4) #define as_uchar4(x) __builtin_astype(x, uchar4) #define as_short4(x) __builtin_astype(x, short4) #define as_ushort4(x) __builtin_astype(x, ushort4) @@ -53,7 +49,6 @@ #define as_float4(x) __builtin_astype(x, float4) #define as_char8(x) __builtin_astype(x, char8) -#define as_schar8(x) __builtin_astype(x, schar8) #define as_uchar8(x) __builtin_astype(x, uchar8) #define as_short8(x) __builtin_astype(x, short8) #define as_ushort8(x) __builtin_astype(x, ushort8) @@ -64,7 +59,6 @@ #define as_float8(x) __builtin_astype(x, float8) #define as_char16(x) __builtin_astype(x, char16) -#define as_schar16(x) __builtin_astype(x, schar16) #define as_uchar16(x) __builtin_astype(x, uchar16) #define as_short16(x) __builtin_astype(x, short16) #define as_ushort16(x) __builtin_astype(x, ushort16) diff --git a/libclc/generic/include/core/convert.h b/libclc/generic/include/core/convert.h index e3f19010b404d..299550a922df9 100644 --- a/libclc/generic/include/core/convert.h +++ b/libclc/generic/include/core/convert.h @@ -22,7 +22,6 @@ #define _CLC_VECTOR_CORE_CONVERT_FROM1(FROM_TYPE, SUFFIX) \ _CLC_VECTOR_CORE_CONVERT_DECL(FROM_TYPE, char, SUFFIX) \ - _CLC_VECTOR_CORE_CONVERT_DECL(FROM_TYPE, schar, SUFFIX) \ _CLC_VECTOR_CORE_CONVERT_DECL(FROM_TYPE, uchar, SUFFIX) \ _CLC_VECTOR_CORE_CONVERT_DECL(FROM_TYPE, int, SUFFIX) \ _CLC_VECTOR_CORE_CONVERT_DECL(FROM_TYPE, uint, SUFFIX) \ @@ -51,7 +50,6 @@ #define _CLC_VECTOR_CORE_CONVERT_TO1(SUFFIX) \ _CLC_VECTOR_CORE_CONVERT_FROM(char, SUFFIX) \ - _CLC_VECTOR_CORE_CONVERT_FROM(schar, SUFFIX) \ _CLC_VECTOR_CORE_CONVERT_FROM(uchar, SUFFIX) \ _CLC_VECTOR_CORE_CONVERT_FROM(int, SUFFIX) \ _CLC_VECTOR_CORE_CONVERT_FROM(uint, SUFFIX) \ diff --git a/libclc/generic/lib/gen_convert.py b/libclc/generic/lib/gen_convert.py index a0b02e3c7f9cb..b8c7050095fc8 100644 --- a/libclc/generic/lib/gen_convert.py +++ b/libclc/generic/lib/gen_convert.py @@ -68,14 +68,9 @@ saturation = ["", "_sat"] rounding_modes = ["_rtz", "_rte", "_rtp", "_rtn"] -if clc: - types.insert(1, "schar") - int_types.insert(1, "schar") - bool_type = { "char": "char", - "schar": "schar", - "uchar": "schar" if clc else "char", + "uchar": "char", "short": "short", "ushort": "short", "int": "int", @@ -89,7 +84,6 @@ unsigned_type = { "char": "uchar", - "schar": "uchar", "uchar": "uchar", "short": "ushort", "ushort": "ushort", @@ -101,7 +95,6 @@ sizeof_type = { "char": 1, - "schar": 1, "uchar": 1, "short": 2, "ushort": 2, @@ -116,7 +109,6 @@ limit_max = { "char": "CHAR_MAX", - "schar": "CHAR_MAX", "uchar": "UCHAR_MAX", "short": "SHRT_MAX", "ushort": "USHRT_MAX", @@ -129,7 +121,6 @@ limit_min = { "char": "CHAR_MIN", - "schar": "CHAR_MIN", "uchar": "0", "short": "SHRT_MIN", "ushort": "0", diff --git a/libclc/libspirv/include/libspirv/async/gentype.inc b/libclc/libspirv/include/libspirv/async/gentype.inc index d759642bd4784..1b678f8a4ad00 100644 --- a/libclc/libspirv/include/libspirv/async/gentype.inc +++ b/libclc/libspirv/include/libspirv/async/gentype.inc @@ -46,46 +46,6 @@ #undef __CLC_GENTYPE_MANGLED #undef __CLC_GENTYPE -#ifndef __CLC_NO_SCHAR -#define __CLC_GENTYPE schar -#define __CLC_GENTYPE_MANGLED a -#include __CLC_BODY -#undef __CLC_GENTYPE_MANGLED -#undef __CLC_GENTYPE - -#define __CLC_GENTYPE schar2 -#define __CLC_GENTYPE_MANGLED Dv2_a -#include __CLC_BODY -#undef __CLC_GENTYPE_MANGLED -#undef __CLC_GENTYPE - -#ifdef __CLC_GEN_VEC3 -#define __CLC_GENTYPE schar3 -#define __CLC_GENTYPE_MANGLED Dv3_a -#include __CLC_BODY -#undef __CLC_GENTYPE_MANGLED -#undef __CLC_GENTYPE -#endif - -#define __CLC_GENTYPE schar4 -#define __CLC_GENTYPE_MANGLED Dv4_a -#include __CLC_BODY -#undef __CLC_GENTYPE_MANGLED -#undef __CLC_GENTYPE - -#define __CLC_GENTYPE schar8 -#define __CLC_GENTYPE_MANGLED Dv8_a -#include __CLC_BODY -#undef __CLC_GENTYPE_MANGLED -#undef __CLC_GENTYPE - -#define __CLC_GENTYPE schar16 -#define __CLC_GENTYPE_MANGLED Dv16_a -#include __CLC_BODY -#undef __CLC_GENTYPE_MANGLED -#undef __CLC_GENTYPE -#endif - #define __CLC_GENTYPE uchar #define __CLC_GENTYPE_MANGLED h #include __CLC_BODY diff --git a/libclc/libspirv/include/libspirv/lp64_types.h b/libclc/libspirv/include/libspirv/lp64_types.h index 2cf6a948a5d4b..aa8e9ad85be63 100644 --- a/libclc/libspirv/include/libspirv/lp64_types.h +++ b/libclc/libspirv/include/libspirv/lp64_types.h @@ -22,12 +22,12 @@ typedef char __clc_vec4_char_t __attribute__((ext_vector_type(4))); typedef char __clc_vec8_char_t __attribute__((ext_vector_type(8))); typedef char __clc_vec16_char_t __attribute__((ext_vector_type(16))); -typedef signed char __clc_int8_t; -typedef signed char __clc_vec2_int8_t __attribute__((ext_vector_type(2))); -typedef signed char __clc_vec3_int8_t __attribute__((ext_vector_type(3))); -typedef signed char __clc_vec4_int8_t __attribute__((ext_vector_type(4))); -typedef signed char __clc_vec8_int8_t __attribute__((ext_vector_type(8))); -typedef signed char __clc_vec16_int8_t __attribute__((ext_vector_type(16))); +typedef char __clc_int8_t; +typedef char __clc_vec2_int8_t __attribute__((ext_vector_type(2))); +typedef char __clc_vec3_int8_t __attribute__((ext_vector_type(3))); +typedef char __clc_vec4_int8_t __attribute__((ext_vector_type(4))); +typedef char __clc_vec8_int8_t __attribute__((ext_vector_type(8))); +typedef char __clc_vec16_int8_t __attribute__((ext_vector_type(16))); typedef unsigned char __clc_uint8_t; typedef unsigned char __clc_vec2_uint8_t __attribute__((ext_vector_type(2))); diff --git a/libclc/libspirv/include/libspirv/ptx-nvidiacl/async/gentype.inc b/libclc/libspirv/include/libspirv/ptx-nvidiacl/async/gentype.inc index 2d65ac9216adf..3ca00675abfdd 100644 --- a/libclc/libspirv/include/libspirv/ptx-nvidiacl/async/gentype.inc +++ b/libclc/libspirv/include/libspirv/ptx-nvidiacl/async/gentype.inc @@ -28,29 +28,6 @@ #undef __CLC_GENTYPE #endif -#ifndef __CLC_NO_SCHAR -#define __CLC_GENTYPE schar -#define __CLC_GENTYPE_MANGLED a -#include __CLC_BODY -#undef __CLC_GENTYPE_MANGLED -#undef __CLC_GENTYPE - -#define __CLC_GENTYPE schar2 -#define __CLC_GENTYPE_MANGLED Dv2_a -#include __CLC_BODY -#undef __CLC_GENTYPE_MANGLED -#undef __CLC_GENTYPE - -#ifdef __CLC_GEN_VEC3 -#define __CLC_GENTYPE schar3 -#define __CLC_GENTYPE_MANGLED Dv3_a -#include __CLC_BODY -#undef __CLC_GENTYPE_MANGLED -#undef __CLC_GENTYPE -#endif - -#endif - #define __CLC_GENTYPE uchar #define __CLC_GENTYPE_MANGLED h #include __CLC_BODY diff --git a/libclc/libspirv/lib/generic/gen_convert.py b/libclc/libspirv/lib/generic/gen_convert.py index 3a17f1b4dddc0..9653ac96f15da 100755 --- a/libclc/libspirv/lib/generic/gen_convert.py +++ b/libclc/libspirv/lib/generic/gen_convert.py @@ -42,9 +42,6 @@ clc_core_fn_name, ) -types.remove("char") -int_types.remove("char") -signed_types.remove("char") rounding_modes = [""] + rounding_modes print( @@ -113,9 +110,6 @@ def spirv_fn_name(src, dst, size="", mode="", sat="", force_sat_decoration=False is_dst_signed = dst in signed_types use_sat_insn = sat != "" and not force_sat_decoration - if dst == "schar": - dst = "char" - if is_src_unsigned and is_dst_signed and use_sat_insn: return "__spirv_SatConvertUToS_R{DST}{N}".format(DST=dst, N=size) elif is_src_signed and is_dst_unsigned and use_sat_insn: diff --git a/libclc/libspirv/lib/generic/gen_convert_common.py b/libclc/libspirv/lib/generic/gen_convert_common.py index 136f505d59b4e..53c8bf1290bf4 100644 --- a/libclc/libspirv/lib/generic/gen_convert_common.py +++ b/libclc/libspirv/lib/generic/gen_convert_common.py @@ -3,7 +3,6 @@ types = [ "char", - "schar", "uchar", "short", "ushort", @@ -17,7 +16,6 @@ ] int_types = [ "char", - "schar", "uchar", "short", "ushort", @@ -27,7 +25,7 @@ "ulong", ] unsigned_types = ["uchar", "ushort", "uint", "ulong"] -signed_types = ["char", "schar", "short", "int", "long"] +signed_types = ["char", "short", "int", "long"] float_types = ["half", "float", "double"] int64_types = ["long", "ulong"] float64_types = ["double"] @@ -42,8 +40,7 @@ bool_type = { "char": "char", - "schar": "schar", - "uchar": "schar", + "uchar": "char", "short": "short", "ushort": "short", "int": "int", @@ -57,7 +54,6 @@ unsigned_type = { "char": "uchar", - "schar": "uchar", "uchar": "uchar", "short": "ushort", "ushort": "ushort", @@ -69,7 +65,6 @@ sizeof_type = { "char": 1, - "schar": 1, "uchar": 1, "short": 2, "ushort": 2, @@ -84,7 +79,6 @@ limit_max = { "char": "CHAR_MAX", - "schar": "CHAR_MAX", "uchar": "UCHAR_MAX", "short": "SHRT_MAX", "ushort": "USHRT_MAX", @@ -97,7 +91,6 @@ limit_min = { "char": "CHAR_MIN", - "schar": "CHAR_MIN", "uchar": "0", "short": "SHRT_MIN", "ushort": "0", diff --git a/libclc/libspirv/lib/generic/geometric/normalize.cl b/libclc/libspirv/lib/generic/geometric/normalize.cl index d6f9d7f1c9cdf..bf706bd6d3398 100644 --- a/libclc/libspirv/lib/generic/geometric/normalize.cl +++ b/libclc/libspirv/lib/generic/geometric/normalize.cl @@ -6,6 +6,8 @@ // //===----------------------------------------------------------------------===// +#include +#include #include #define HALF_MAX_SQRT 0x1.0p+8h @@ -15,8 +17,7 @@ MAX_SQRT, MIN_SQRT) \ _CLC_OVERLOAD _CLC_DEF FP_TYPE##VLEN __spirv_ocl_normalize( \ FP_TYPE##VLEN p) { \ - if (__spirv_All(__spirv_SConvert_Rchar##VLEN( \ - p == (FP_TYPE##VLEN)0.0##FLOAT_MARK))) \ + if (__clc_all(p == (FP_TYPE##VLEN)0.0##FLOAT_MARK)) \ return p; \ FP_TYPE l2 = __spirv_Dot(p, p); \ if (l2 < FLT_MIN) { \ @@ -30,7 +31,7 @@ __spirv_ocl_select( \ (FP_TYPE##VLEN)0.0##FLOAT_MARK, \ (FP_TYPE##VLEN)1.0##FLOAT_MARK, \ - __spirv_SConvert_R##INT_TYPE##VLEN(__spirv_IsInf(p))), \ + __clc_convert_##INT_TYPE##VLEN(__spirv_IsInf(p))), \ p); \ l2 = __spirv_Dot(p, p); \ } \ diff --git a/libclc/libspirv/lib/generic/integer/clz.cl b/libclc/libspirv/lib/generic/integer/clz.cl index d3d1145166d94..60abf4e2aa5d7 100644 --- a/libclc/libspirv/lib/generic/integer/clz.cl +++ b/libclc/libspirv/lib/generic/integer/clz.cl @@ -13,10 +13,6 @@ _CLC_OVERLOAD _CLC_DEF char __spirv_ocl_clz(char x) { return __spirv_ocl_clz((ushort)(uchar)x) - 8; } -_CLC_OVERLOAD _CLC_DEF schar __spirv_ocl_clz(schar x) { - return __spirv_ocl_clz((ushort)(uchar)x) - 8; -} - _CLC_OVERLOAD _CLC_DEF uchar __spirv_ocl_clz(uchar x) { return __spirv_ocl_clz((ushort)x) - 8; } @@ -46,7 +42,6 @@ _CLC_OVERLOAD _CLC_DEF ulong __spirv_ocl_clz(ulong x) { } _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, char, __spirv_ocl_clz, char) -_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, schar, __spirv_ocl_clz, schar) _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, uchar, __spirv_ocl_clz, uchar) _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, short, __spirv_ocl_clz, short) _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, ushort, __spirv_ocl_clz, ushort) diff --git a/libclc/libspirv/lib/generic/integer/upsample.cl b/libclc/libspirv/lib/generic/integer/upsample.cl index c8987a7e581ea..3114c9ffdf702 100644 --- a/libclc/libspirv/lib/generic/integer/upsample.cl +++ b/libclc/libspirv/lib/generic/integer/upsample.cl @@ -37,7 +37,6 @@ #define __CLC_UPSAMPLE_TYPES() \ __CLC_UPSAMPLE_IMPL(s, short, char, uchar, char) \ - __CLC_UPSAMPLE_IMPL(s, short, schar, uchar, char) \ __CLC_UPSAMPLE_IMPL(u, ushort, uchar, uchar, uchar) \ __CLC_UPSAMPLE_IMPL(s, int, short, ushort, short) \ __CLC_UPSAMPLE_IMPL(u, uint, ushort, ushort, ushort) \ diff --git a/libclc/libspirv/lib/generic/math/fract.cl b/libclc/libspirv/lib/generic/math/fract.cl index ce768090bd73c..cc2da2c00189a 100644 --- a/libclc/libspirv/lib/generic/math/fract.cl +++ b/libclc/libspirv/lib/generic/math/fract.cl @@ -6,6 +6,7 @@ // //===----------------------------------------------------------------------===// +#include #include #include diff --git a/libclc/libspirv/lib/generic/math/fract.inc b/libclc/libspirv/lib/generic/math/fract.inc index 24a559238368d..01e61c6b975f4 100644 --- a/libclc/libspirv/lib/generic/math/fract.inc +++ b/libclc/libspirv/lib/generic/math/fract.inc @@ -9,29 +9,20 @@ #if __CLC_FPSIZE == 64 #define MIN_CONSTANT 0x1.fffffffffffffp-1 #define ZERO (__CLC_GENTYPE)0.0 -#define __CLC_BOOLN __CLC_XCONCAT(long, __CLC_VECSIZE) #elif __CLC_FPSIZE == 32 #define MIN_CONSTANT 0x1.fffffep-1f #define ZERO (__CLC_GENTYPE)0.0f -#define __CLC_BOOLN __CLC_XCONCAT(int, __CLC_VECSIZE) #elif __CLC_FPSIZE == 16 #define MIN_CONSTANT 0x1.ffcp-1h #define ZERO (__CLC_GENTYPE)0.0h -#define __CLC_BOOLN __CLC_XCONCAT(short, __CLC_VECSIZE) -#endif - -#ifdef __CLC_SCALAR -#define __CLC_CONVERT -#else -#define __CLC_CONVERT __CLC_XCONCAT(__spirv_SConvert_R, __CLC_BOOLN) #endif _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __spirv_ocl_fract(__CLC_GENTYPE x, __private __CLC_GENTYPE *iptr) { *iptr = __spirv_ocl_floor(x); __CLC_GENTYPE r = __spirv_ocl_fmin(x - *iptr, MIN_CONSTANT); - r = __CLC_CONVERT(__spirv_IsInf(x)) ? ZERO : r; - r = __CLC_CONVERT(__spirv_IsNan(x)) ? x : r; + r = __CLC_CONVERT_BIT_INTN(__spirv_IsInf(x)) ? ZERO : r; + r = __CLC_CONVERT_BIT_INTN(__spirv_IsNan(x)) ? x : r; return r; } @@ -52,5 +43,3 @@ FRACT_DEF(generic); #undef MIN_CONSTANT #undef ZERO -#undef __CLC_CONVERT -#undef __CLC_BOOLN diff --git a/libclc/libspirv/lib/generic/math/maxmag.cl b/libclc/libspirv/lib/generic/math/maxmag.cl index 6117489141fb7..5714c61ca7ab9 100644 --- a/libclc/libspirv/lib/generic/math/maxmag.cl +++ b/libclc/libspirv/lib/generic/math/maxmag.cl @@ -6,8 +6,9 @@ // //===----------------------------------------------------------------------===// -#include +#include #include +#include #define __CLC_BODY #include diff --git a/libclc/libspirv/lib/generic/math/maxmag.inc b/libclc/libspirv/lib/generic/math/maxmag.inc index 9fa4702f0b6ad..44cf21cfda992 100644 --- a/libclc/libspirv/lib/generic/math/maxmag.inc +++ b/libclc/libspirv/lib/generic/math/maxmag.inc @@ -6,26 +6,15 @@ // //===----------------------------------------------------------------------===// -#if __CLC_FPSIZE == 64 -#define __CLC_CONVERT_NATN __CLC_XCONCAT(__spirv_SConvert_Rlong, __CLC_VECSIZE) -#elif __CLC_FPSIZE == 32 -#define __CLC_CONVERT_NATN __CLC_XCONCAT(__spirv_SConvert_Rint, __CLC_VECSIZE) -#elif __CLC_FPSIZE == 16 -#define __CLC_CONVERT_NATN __CLC_XCONCAT(__spirv_SConvert_Rshort, __CLC_VECSIZE) -#endif - _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __spirv_ocl_maxmag(__CLC_GENTYPE x, __CLC_GENTYPE y) { - const __CLC_GENTYPE res = __spirv_ocl_select( - y, x, - __CLC_CONVERT_NATN((__CLC_SCHARN)__spirv_FOrdGreaterThan( - __spirv_ocl_fabs(x), __spirv_ocl_fabs(y)))); + const __CLC_GENTYPE res = + __spirv_ocl_select(y, x, + __CLC_CONVERT_BIT_INTN(__spirv_FOrdGreaterThan( + __spirv_ocl_fabs(x), __spirv_ocl_fabs(y)))); return __spirv_ocl_select( res, __spirv_ocl_fmax(x, y), - __CLC_CONVERT_NATN( - (__CLC_SCHARN)(__spirv_IsNan(x) | __spirv_IsNan(y) | - __spirv_FOrdEqual(__spirv_ocl_fabs(x), - __spirv_ocl_fabs(y))))); + __CLC_CONVERT_BIT_INTN( + (__spirv_IsNan(x) | __spirv_IsNan(y) | + __spirv_FOrdEqual(__spirv_ocl_fabs(x), __spirv_ocl_fabs(y))))); } - -#undef __CLC_CONVERT_NATN diff --git a/libclc/libspirv/lib/generic/math/minmag.cl b/libclc/libspirv/lib/generic/math/minmag.cl index fb6392b76eb63..7fb773c6fdf9a 100644 --- a/libclc/libspirv/lib/generic/math/minmag.cl +++ b/libclc/libspirv/lib/generic/math/minmag.cl @@ -6,8 +6,9 @@ // //===----------------------------------------------------------------------===// -#include +#include #include +#include #define __CLC_BODY #include diff --git a/libclc/libspirv/lib/generic/math/minmag.inc b/libclc/libspirv/lib/generic/math/minmag.inc index 5548f9dd226dc..9be181f718bff 100644 --- a/libclc/libspirv/lib/generic/math/minmag.inc +++ b/libclc/libspirv/lib/generic/math/minmag.inc @@ -6,25 +6,15 @@ // //===----------------------------------------------------------------------===// -#if __CLC_FPSIZE == 64 -#define __CLC_CONVERT_NATN __CLC_XCONCAT(__spirv_SConvert_Rlong, __CLC_VECSIZE) -#elif __CLC_FPSIZE == 32 -#define __CLC_CONVERT_NATN __CLC_XCONCAT(__spirv_SConvert_Rint, __CLC_VECSIZE) -#elif __CLC_FPSIZE == 16 -#define __CLC_CONVERT_NATN __CLC_XCONCAT(__spirv_SConvert_Rshort, __CLC_VECSIZE) -#endif - _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __spirv_ocl_minmag(__CLC_GENTYPE x, __CLC_GENTYPE y) { const __CLC_GENTYPE res = __spirv_ocl_select(y, x, - __CLC_CONVERT_NATN((__CLC_SCHARN)__spirv_FOrdLessThan( + __CLC_CONVERT_BIT_INTN(__spirv_FOrdLessThan( __spirv_ocl_fabs(x), __spirv_ocl_fabs(y)))); return __spirv_ocl_select( res, __spirv_ocl_fmin(x, y), - __CLC_CONVERT_NATN( (__CLC_SCHARN)(__spirv_IsNan(x) | __spirv_IsNan(y) | - __spirv_FOrdEqual(__spirv_ocl_fabs(x), - __spirv_ocl_fabs(y))))); + __CLC_CONVERT_BIT_INTN( + (__spirv_IsNan(x) | __spirv_IsNan(y) | + __spirv_FOrdEqual(__spirv_ocl_fabs(x), __spirv_ocl_fabs(y))))); } - -#undef __CLC_CONVERT_NATN diff --git a/libclc/libspirv/lib/generic/misc/shuffle.cl b/libclc/libspirv/lib/generic/misc/shuffle.cl index c4a31cf61f5c5..4d301cd5ea2e9 100644 --- a/libclc/libspirv/lib/generic/misc/shuffle.cl +++ b/libclc/libspirv/lib/generic/misc/shuffle.cl @@ -138,7 +138,6 @@ _CLC_VECTOR_SHUFFLE_MASKSIZE(TYPE, 16, MASKTYPE) _CLC_VECTOR_SHUFFLE_INSIZE(char, uchar) -_CLC_VECTOR_SHUFFLE_INSIZE(schar, uchar) _CLC_VECTOR_SHUFFLE_INSIZE(short, ushort) _CLC_VECTOR_SHUFFLE_INSIZE(int, uint) _CLC_VECTOR_SHUFFLE_INSIZE(long, ulong) diff --git a/libclc/libspirv/lib/generic/misc/shuffle2.cl b/libclc/libspirv/lib/generic/misc/shuffle2.cl index 037dfc9ffd719..6dd698441db3c 100644 --- a/libclc/libspirv/lib/generic/misc/shuffle2.cl +++ b/libclc/libspirv/lib/generic/misc/shuffle2.cl @@ -140,7 +140,6 @@ _CLC_VECTOR_SHUFFLE_MASKSIZE(TYPE, 16, MASKTYPE) _CLC_VECTOR_SHUFFLE_INSIZE(char, uchar) -_CLC_VECTOR_SHUFFLE_INSIZE(schar, uchar) _CLC_VECTOR_SHUFFLE_INSIZE(short, ushort) _CLC_VECTOR_SHUFFLE_INSIZE(int, uint) _CLC_VECTOR_SHUFFLE_INSIZE(long, ulong) diff --git a/libclc/libspirv/lib/generic/relational/all.cl b/libclc/libspirv/lib/generic/relational/all.cl index 9301125e8a587..5f97bbe99b181 100644 --- a/libclc/libspirv/lib/generic/relational/all.cl +++ b/libclc/libspirv/lib/generic/relational/all.cl @@ -29,4 +29,4 @@ ALL_ID(TYPE##8) { return _CLC_ALL8(v); } \ ALL_ID(TYPE##16) { return _CLC_ALL16(v); } -ALL_VECTORIZE(schar) +ALL_VECTORIZE(char) diff --git a/libclc/libspirv/lib/generic/relational/any.cl b/libclc/libspirv/lib/generic/relational/any.cl index 601abf0e6fb51..18801274fd706 100644 --- a/libclc/libspirv/lib/generic/relational/any.cl +++ b/libclc/libspirv/lib/generic/relational/any.cl @@ -29,4 +29,4 @@ ANY_ID(TYPE##8) { return _CLC_ANY8(v); } \ ANY_ID(TYPE##16) { return _CLC_ANY16(v); } -ANY_VECTORIZE(schar) +ANY_VECTORIZE(char) diff --git a/libclc/libspirv/lib/generic/relational/genbinrelational.inc b/libclc/libspirv/lib/generic/relational/genbinrelational.inc index 14a41401839ac..364b781a89c04 100644 --- a/libclc/libspirv/lib/generic/relational/genbinrelational.inc +++ b/libclc/libspirv/lib/generic/relational/genbinrelational.inc @@ -8,7 +8,7 @@ _CLC_DEFINE_RELATIONAL_BINARY_SCALAR(bool, _CLC_SPIRV_BUILTIN, _CLC_BUILTIN_IMPL, float, float) -_CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(schar, _CLC_SPIRV_BUILTIN, float, float) +_CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(char, _CLC_SPIRV_BUILTIN, float, float) #ifdef cl_khr_fp64 @@ -16,7 +16,7 @@ _CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(schar, _CLC_SPIRV_BUILTIN, float, float) _CLC_DEFINE_RELATIONAL_BINARY_SCALAR(bool, _CLC_SPIRV_BUILTIN, _CLC_BUILTIN_IMPL, double, double) -_CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(schar, _CLC_SPIRV_BUILTIN, double, double) +_CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(char, _CLC_SPIRV_BUILTIN, double, double) #endif @@ -26,6 +26,6 @@ _CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(schar, _CLC_SPIRV_BUILTIN, double, double) _CLC_DEFINE_RELATIONAL_BINARY_SCALAR(bool, _CLC_SPIRV_BUILTIN, _CLC_BUILTIN_IMPL, half, half) -_CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(schar, _CLC_SPIRV_BUILTIN, half, half) +_CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(char, _CLC_SPIRV_BUILTIN, half, half) #endif diff --git a/libclc/libspirv/lib/generic/relational/genunary.inc b/libclc/libspirv/lib/generic/relational/genunary.inc index 80137ca3bc629..7f373d0a27618 100644 --- a/libclc/libspirv/lib/generic/relational/genunary.inc +++ b/libclc/libspirv/lib/generic/relational/genunary.inc @@ -8,7 +8,7 @@ _CLC_DEFINE_RELATIONAL_UNARY_SCALAR(bool, _CLC_SPIRV_BUILTIN, _CLC_BUILTIN_IMPL, float) -_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(schar, _CLC_SPIRV_BUILTIN, float) +_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(char, _CLC_SPIRV_BUILTIN, float) #ifdef cl_khr_fp64 @@ -16,7 +16,7 @@ _CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(schar, _CLC_SPIRV_BUILTIN, float) _CLC_DEFINE_RELATIONAL_UNARY_SCALAR(bool, _CLC_SPIRV_BUILTIN, _CLC_BUILTIN_IMPL, double) -_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(schar, _CLC_SPIRV_BUILTIN, double) +_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(char, _CLC_SPIRV_BUILTIN, double) #endif #ifdef cl_khr_fp16 @@ -25,6 +25,6 @@ _CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(schar, _CLC_SPIRV_BUILTIN, double) _CLC_DEFINE_RELATIONAL_UNARY_SCALAR(bool, _CLC_SPIRV_BUILTIN, _CLC_BUILTIN_IMPL, half) -_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(schar, _CLC_SPIRV_BUILTIN, half) +_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(char, _CLC_SPIRV_BUILTIN, half) #endif diff --git a/libclc/libspirv/lib/generic/shared/vload.cl b/libclc/libspirv/lib/generic/shared/vload.cl index d3c8163e9b2a8..4d7d61813abdc 100644 --- a/libclc/libspirv/lib/generic/shared/vload.cl +++ b/libclc/libspirv/lib/generic/shared/vload.cl @@ -76,7 +76,7 @@ #define VLOAD_ADDR_SPACES(__CLC_SCALAR_GENTYPE) \ VLOAD_ADDR_SPACES_IMPL(__CLC_SCALAR_GENTYPE, __CLC_SCALAR_GENTYPE) -VLOAD_ADDR_SPACES_IMPL(char, schar) +VLOAD_ADDR_SPACES_IMPL(char, char) #define VLOAD_TYPES() \ VLOAD_ADDR_SPACES(uchar) \ diff --git a/libclc/libspirv/lib/generic/shared/vstore.cl b/libclc/libspirv/lib/generic/shared/vstore.cl index cf0e5fd0f706b..74bd35c3032d2 100644 --- a/libclc/libspirv/lib/generic/shared/vstore.cl +++ b/libclc/libspirv/lib/generic/shared/vstore.cl @@ -71,7 +71,7 @@ VSTORE_VECTORIZE(__CLC_SCALAR___CLC_GENTYPE, __global) \ VSTORE_VECTORIZE_GENERIC(__CLC_SCALAR___CLC_GENTYPE, __generic) -VSTORE_ADDR_SPACES(schar) +VSTORE_ADDR_SPACES(char) VSTORE_ADDR_SPACES(uchar) VSTORE_ADDR_SPACES(short) VSTORE_ADDR_SPACES(ushort) diff --git a/libclc/libspirv/lib/native_cpu/integer/popcount.cl b/libclc/libspirv/lib/native_cpu/integer/popcount.cl index d6a90d8950b16..028b5a36379ce 100644 --- a/libclc/libspirv/lib/native_cpu/integer/popcount.cl +++ b/libclc/libspirv/lib/native_cpu/integer/popcount.cl @@ -13,15 +13,21 @@ _CLC_OVERLOAD TYPE __popcount_helper(TYPE c) { \ } DEF_POPCOUNT_HELPER(char, unsigned char) -DEF_POPCOUNT_HELPER(schar, unsigned char) DEF_POPCOUNT_HELPER(short, unsigned short) -_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(int, __spirv_ocl_popcount, __builtin_popcount, int) -_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(uint, __spirv_ocl_popcount, __builtin_popcount, uint) -_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(short, __spirv_ocl_popcount, __popcount_helper, short) -_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(ushort, __spirv_ocl_popcount, __builtin_popcountg, ushort) -_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(long, __spirv_ocl_popcount, __builtin_popcountl, long) -_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(ulong, __spirv_ocl_popcount, __builtin_popcountl, ulong) -_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(char, __spirv_ocl_popcount, __popcount_helper, char) -_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(uchar, __spirv_ocl_popcount, __builtin_popcountg, uchar) -_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(schar, __spirv_ocl_popcount, __popcount_helper, schar) +_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(int, __spirv_ocl_popcount, + __builtin_popcount, int) +_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(uint, __spirv_ocl_popcount, + __builtin_popcount, uint) +_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(short, __spirv_ocl_popcount, + __popcount_helper, short) +_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(ushort, __spirv_ocl_popcount, + __builtin_popcountg, ushort) +_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(long, __spirv_ocl_popcount, + __builtin_popcountl, long) +_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(ulong, __spirv_ocl_popcount, + __builtin_popcountl, ulong) +_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(char, __spirv_ocl_popcount, + __popcount_helper, char) +_CLC_DEFINE_UNARY_BUILTIN_SCALARIZE(uchar, __spirv_ocl_popcount, + __builtin_popcountg, uchar) diff --git a/libclc/libspirv/lib/ptx-nvidiacl/async/async_work_group_strided_copy.cl b/libclc/libspirv/lib/ptx-nvidiacl/async/async_work_group_strided_copy.cl index 438ad9ccf6ab7..69cf677722037 100644 --- a/libclc/libspirv/lib/ptx-nvidiacl/async/async_work_group_strided_copy.cl +++ b/libclc/libspirv/lib/ptx-nvidiacl/async/async_work_group_strided_copy.cl @@ -53,9 +53,6 @@ __CLC_GROUP_CP_ASYNC_DST_GLOBAL(ushort8); __CLC_GROUP_CP_ASYNC_DST_GLOBAL(char4); __CLC_GROUP_CP_ASYNC_DST_GLOBAL(char8); __CLC_GROUP_CP_ASYNC_DST_GLOBAL(char16); -__CLC_GROUP_CP_ASYNC_DST_GLOBAL(schar4); -__CLC_GROUP_CP_ASYNC_DST_GLOBAL(schar8); -__CLC_GROUP_CP_ASYNC_DST_GLOBAL(schar16); __CLC_GROUP_CP_ASYNC_DST_GLOBAL(uchar4); __CLC_GROUP_CP_ASYNC_DST_GLOBAL(uchar8); __CLC_GROUP_CP_ASYNC_DST_GLOBAL(uchar16); @@ -88,7 +85,6 @@ __CLC_GROUP_CP_ASYNC_4(short2); __CLC_GROUP_CP_ASYNC_4(ushort2); __CLC_GROUP_CP_ASYNC_4(half2); __CLC_GROUP_CP_ASYNC_4(char4); -__CLC_GROUP_CP_ASYNC_4(schar4); __CLC_GROUP_CP_ASYNC_4(uchar4); #undef __CLC_GROUP_CP_ASYNC_4 @@ -122,7 +118,6 @@ __CLC_GROUP_CP_ASYNC_8(int2); __CLC_GROUP_CP_ASYNC_8(uint2); __CLC_GROUP_CP_ASYNC_8(float2); __CLC_GROUP_CP_ASYNC_8(char8); -__CLC_GROUP_CP_ASYNC_8(schar8); __CLC_GROUP_CP_ASYNC_8(uchar8); #undef __CLC_GROUP_CP_ASYNC_8 @@ -157,6 +152,5 @@ __CLC_GROUP_CP_ASYNC_8(uchar8); __CLC_GROUP_CP_ASYNC_16(half8); __CLC_GROUP_CP_ASYNC_16(char16); __CLC_GROUP_CP_ASYNC_16(uchar16); - __CLC_GROUP_CP_ASYNC_16(schar16); #undef __CLC_GROUP_CP_ASYNC_16 diff --git a/libclc/libspirv/lib/ptx-nvidiacl/integer/mul_hi.cl b/libclc/libspirv/lib/ptx-nvidiacl/integer/mul_hi.cl index 56593bbcb0c31..7844544982e4a 100644 --- a/libclc/libspirv/lib/ptx-nvidiacl/integer/mul_hi.cl +++ b/libclc/libspirv/lib/ptx-nvidiacl/integer/mul_hi.cl @@ -33,15 +33,12 @@ _CLC_OVERLOAD _CLC_DEF ulong __spirv_ocl_u_mul_hi(ulong x, ulong y) { } __CLC_MUL_HI_IMPL(short, __spirv_ocl_s_mul_hi, char, 8) -__CLC_MUL_HI_IMPL(short, __spirv_ocl_s_mul_hi, schar, 8) __CLC_MUL_HI_IMPL(ushort, __spirv_ocl_u_mul_hi, uchar, 8) __CLC_MUL_HI_IMPL(int, __spirv_ocl_s_mul_hi, short, 16) __CLC_MUL_HI_IMPL(uint, __spirv_ocl_u_mul_hi, ushort, 16) _CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, char, __spirv_ocl_s_mul_hi, char, char) -_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, schar, __spirv_ocl_s_mul_hi, - schar, schar) _CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, short, __spirv_ocl_s_mul_hi, short, short) _CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, int, __spirv_ocl_s_mul_hi, int, diff --git a/libclc/libspirv/lib/ptx-nvidiacl/relational/isfinite.cl b/libclc/libspirv/lib/ptx-nvidiacl/relational/isfinite.cl index 35eac192d2e62..05fbd70e6195c 100644 --- a/libclc/libspirv/lib/ptx-nvidiacl/relational/isfinite.cl +++ b/libclc/libspirv/lib/ptx-nvidiacl/relational/isfinite.cl @@ -19,7 +19,7 @@ _CLC_DEF _CLC_OVERLOAD bool __spirv_IsFinite(double x) { return __nv_isfinited(x); } -_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(schar, __spirv_IsFinite, double) +_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(char, __spirv_IsFinite, double) #endif @@ -27,7 +27,7 @@ _CLC_DEF _CLC_OVERLOAD bool __spirv_IsFinite(float x) { return __nv_isfinited(x); } -_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(schar, __spirv_IsFinite, float) +_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(char, __spirv_IsFinite, float) #ifdef cl_khr_fp16 @@ -37,6 +37,6 @@ _CLC_DEF _CLC_OVERLOAD bool __spirv_IsFinite(half x) { return __nv_isfinited(x); } -_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(schar, __spirv_IsFinite, half) +_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(char, __spirv_IsFinite, half) #endif diff --git a/libclc/libspirv/lib/ptx-nvidiacl/relational/isinf.cl b/libclc/libspirv/lib/ptx-nvidiacl/relational/isinf.cl index bec7872b834b2..a0d6dfd89aebe 100644 --- a/libclc/libspirv/lib/ptx-nvidiacl/relational/isinf.cl +++ b/libclc/libspirv/lib/ptx-nvidiacl/relational/isinf.cl @@ -13,7 +13,7 @@ _CLC_DEF _CLC_OVERLOAD bool __spirv_IsInf(float x) { return __nv_isinff(x); } -_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(schar, __spirv_IsInf, float) +_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(char, __spirv_IsInf, float) #ifdef cl_khr_fp64 @@ -21,7 +21,7 @@ _CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(schar, __spirv_IsInf, float) _CLC_DEF _CLC_OVERLOAD bool __spirv_IsInf(double x) { return __nv_isinfd(x); } -_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(schar, __spirv_IsInf, double) +_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(char, __spirv_IsInf, double) #endif #ifdef cl_khr_fp16 @@ -33,5 +33,5 @@ _CLC_DEF _CLC_OVERLOAD bool __spirv_IsInf(half x) { return __spirv_IsInf(f); } -_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(schar, __spirv_IsInf, half) +_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(char, __spirv_IsInf, half) #endif diff --git a/libclc/libspirv/lib/ptx-nvidiacl/relational/isnan.cl b/libclc/libspirv/lib/ptx-nvidiacl/relational/isnan.cl index cba65a524f36a..1a391fbfdcf2e 100644 --- a/libclc/libspirv/lib/ptx-nvidiacl/relational/isnan.cl +++ b/libclc/libspirv/lib/ptx-nvidiacl/relational/isnan.cl @@ -13,7 +13,7 @@ _CLC_DEF _CLC_OVERLOAD bool __spirv_IsNan(float x) { return __nv_isnanf(x); } -_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(schar, __spirv_IsNan, float) +_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(char, __spirv_IsNan, float) #ifdef cl_khr_fp64 @@ -21,7 +21,7 @@ _CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(schar, __spirv_IsNan, float) _CLC_DEF _CLC_OVERLOAD bool __spirv_IsNan(double x) { return __nv_isnand(x); } -_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(schar, __spirv_IsNan, double) +_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(char, __spirv_IsNan, double) #endif #ifdef cl_khr_fp16 @@ -33,5 +33,5 @@ _CLC_DEF _CLC_OVERLOAD bool __spirv_IsNan(half x) { return __spirv_IsNan(f); } -_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(schar, __spirv_IsNan, half) +_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(char, __spirv_IsNan, half) #endif From 6da3012f5c72716f0ff47cdd14e27dbb67c20b5b Mon Sep 17 00:00:00 2001 From: Fraser Cormack Date: Thu, 22 May 2025 15:28:47 +0100 Subject: [PATCH 2/2] fix test --- clang/test/CodeGenSPIRV/spirv-builtin-lookup-group.cl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clang/test/CodeGenSPIRV/spirv-builtin-lookup-group.cl b/clang/test/CodeGenSPIRV/spirv-builtin-lookup-group.cl index 52872bf7ac3b9..689d059efa5de 100644 --- a/clang/test/CodeGenSPIRV/spirv-builtin-lookup-group.cl +++ b/clang/test/CodeGenSPIRV/spirv-builtin-lookup-group.cl @@ -27,7 +27,7 @@ bool group_any(bool predicate) { char group_broad_cast(char a) { // CHECK-LABEL: @group_broad_cast( - // CHECK: call spir_func i32 @_Z22__spirv_GroupBroadcastiij( + // CHECK: call spir_func signext i8 @_Z22__spirv_GroupBroadcasticj( return __spirv_GroupBroadcast(2, a, 0u); } @@ -87,7 +87,7 @@ unsigned long group_umax(unsigned long a) { char group_smin(char a) { // CHECK-LABEL: @group_smin( - // CHECK: call spir_func i32 @_Z17__spirv_GroupSMiniii( + // CHECK: call spir_func signext i8 @_Z17__spirv_GroupSMiniic( return __spirv_GroupSMin(2, 0, a); }