Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package spirv-llvm-translator for
openSUSE:Factory checked in at 2025-11-14 16:11:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/spirv-llvm-translator (Old)
and /work/SRC/openSUSE:Factory/.spirv-llvm-translator.new.2061 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "spirv-llvm-translator"
Fri Nov 14 16:11:11 2025 rev:27 rq:1317458 version:21.1.2
Changes:
--------
---
/work/SRC/openSUSE:Factory/spirv-llvm-translator/spirv-llvm-translator.changes
2025-10-14 18:06:35.898417989 +0200
+++
/work/SRC/openSUSE:Factory/.spirv-llvm-translator.new.2061/spirv-llvm-translator.changes
2025-11-14 16:12:04.666178644 +0100
@@ -1,0 +2,8 @@
+Sat Nov 8 22:04:36 UTC 2025 - Aaron Puchert <[email protected]>
+
+- Update to version 21.1.2.
+ * Implement SPV_INTEL_predicated_io extension.
+ * Fix incorrect translation for AtomicCmpExchangeWeak builtin
+ with pointer argument type.
+
+-------------------------------------------------------------------
Old:
----
SPIRV-LLVM-Translator-21.1.1.tar.gz
New:
----
SPIRV-LLVM-Translator-21.1.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ spirv-llvm-translator.spec ++++++
--- /var/tmp/diff_new_pack.uJi2xc/_old 2025-11-14 16:12:09.878397108 +0100
+++ /var/tmp/diff_new_pack.uJi2xc/_new 2025-11-14 16:12:09.894397779 +0100
@@ -23,7 +23,7 @@
%define sover 21
Name: spirv-llvm-translator
-Version: 21.1.1
+Version: 21.1.2
Release: 0
Summary: LLVM/SPIR-V Bi-Directional Translator library
License: BSD-3-Clause
++++++ SPIRV-LLVM-Translator-21.1.1.tar.gz ->
SPIRV-LLVM-Translator-21.1.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/SPIRV-LLVM-Translator-21.1.1/include/LLVMSPIRVExtensions.inc
new/SPIRV-LLVM-Translator-21.1.2/include/LLVMSPIRVExtensions.inc
--- old/SPIRV-LLVM-Translator-21.1.1/include/LLVMSPIRVExtensions.inc
2025-09-29 12:53:11.000000000 +0200
+++ new/SPIRV-LLVM-Translator-21.1.2/include/LLVMSPIRVExtensions.inc
2025-10-17 16:44:20.000000000 +0200
@@ -82,3 +82,4 @@
EXT(SPV_INTEL_int4)
EXT(SPV_INTEL_function_variants)
EXT(SPV_INTEL_shader_atomic_bfloat16)
+EXT(SPV_INTEL_predicated_io)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/SPIRV-LLVM-Translator-21.1.1/lib/SPIRV/SPIRVTypeScavenger.cpp
new/SPIRV-LLVM-Translator-21.1.2/lib/SPIRV/SPIRVTypeScavenger.cpp
--- old/SPIRV-LLVM-Translator-21.1.1/lib/SPIRV/SPIRVTypeScavenger.cpp
2025-09-29 12:53:11.000000000 +0200
+++ new/SPIRV-LLVM-Translator-21.1.2/lib/SPIRV/SPIRVTypeScavenger.cpp
2025-10-17 16:44:20.000000000 +0200
@@ -453,6 +453,7 @@
case OpAtomicLoad:
case OpAtomicExchange:
case OpAtomicCompareExchange:
+ case OpAtomicCompareExchangeWeak:
case OpAtomicIAdd:
case OpAtomicISub:
case OpAtomicFAddEXT:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/SPIRV-LLVM-Translator-21.1.1/lib/SPIRV/libSPIRV/SPIRVInstruction.h
new/SPIRV-LLVM-Translator-21.1.2/lib/SPIRV/libSPIRV/SPIRVInstruction.h
--- old/SPIRV-LLVM-Translator-21.1.1/lib/SPIRV/libSPIRV/SPIRVInstruction.h
2025-09-29 12:53:11.000000000 +0200
+++ new/SPIRV-LLVM-Translator-21.1.2/lib/SPIRV/libSPIRV/SPIRVInstruction.h
2025-10-17 16:44:20.000000000 +0200
@@ -4478,5 +4478,22 @@
_SPIRV_OP(BitwiseFunction, true, 7)
#undef _SPIRV_OP
+class SPIRVPredicatedIOINTELInst : public SPIRVInstTemplateBase {
+public:
+ std::optional<ExtensionID> getRequiredExtension() const override {
+ return ExtensionID::SPV_INTEL_predicated_io;
+ }
+ SPIRVCapVec getRequiredCapability() const override {
+ return getVec(internal::CapabilityPredicatedIOINTEL);
+ }
+};
+
+#define _SPIRV_OP(x, ...)
\
+ typedef SPIRVInstTemplate<SPIRVPredicatedIOINTELInst,
\
+ internal::Op##x##INTEL, __VA_ARGS__>
\
+ SPIRV##x##INTEL;
+_SPIRV_OP(PredicatedLoad, true, 6, true)
+_SPIRV_OP(PredicatedStore, false, 4, true)
+#undef _SPIRV_OP
} // namespace SPIRV
#endif // SPIRV_LIBSPIRV_SPIRVINSTRUCTION_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/SPIRV-LLVM-Translator-21.1.1/lib/SPIRV/libSPIRV/SPIRVNameMapEnum.h
new/SPIRV-LLVM-Translator-21.1.2/lib/SPIRV/libSPIRV/SPIRVNameMapEnum.h
--- old/SPIRV-LLVM-Translator-21.1.1/lib/SPIRV/libSPIRV/SPIRVNameMapEnum.h
2025-09-29 12:53:11.000000000 +0200
+++ new/SPIRV-LLVM-Translator-21.1.2/lib/SPIRV/libSPIRV/SPIRVNameMapEnum.h
2025-10-17 16:44:20.000000000 +0200
@@ -691,6 +691,7 @@
add(CapabilityFunctionVariantsINTEL, "FunctionVariantsINTEL");
add(CapabilitySpecConditionalINTEL, "SpecConditionalINTEL");
add(internal::CapabilityBFloat16ArithmeticINTEL, "BFloat16ArithmeticINTEL");
+ add(internal::CapabilityPredicatedIOINTEL, "PredicatedIOINTEL");
}
SPIRV_DEF_NAMEMAP(Capability, SPIRVCapabilityNameMap)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/SPIRV-LLVM-Translator-21.1.1/lib/SPIRV/libSPIRV/SPIRVOpCodeEnumInternal.h
new/SPIRV-LLVM-Translator-21.1.2/lib/SPIRV/libSPIRV/SPIRVOpCodeEnumInternal.h
---
old/SPIRV-LLVM-Translator-21.1.1/lib/SPIRV/libSPIRV/SPIRVOpCodeEnumInternal.h
2025-09-29 12:53:11.000000000 +0200
+++
new/SPIRV-LLVM-Translator-21.1.2/lib/SPIRV/libSPIRV/SPIRVOpCodeEnumInternal.h
2025-10-17 16:44:20.000000000 +0200
@@ -41,3 +41,7 @@
internal::ConvertHandleToSamplerINTEL)
_SPIRV_OP_INTERNAL(ConvertHandleToSampledImageINTEL,
internal::ConvertHandleToSampledImageINTEL)
+_SPIRV_OP_INTERNAL(PredicatedLoadINTEL,
+ internal::OpPredicatedLoadINTEL)
+_SPIRV_OP_INTERNAL(PredicatedStoreINTEL,
+ internal::OpPredicatedStoreINTEL)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/SPIRV-LLVM-Translator-21.1.1/lib/SPIRV/libSPIRV/spirv_internal.hpp
new/SPIRV-LLVM-Translator-21.1.2/lib/SPIRV/libSPIRV/spirv_internal.hpp
--- old/SPIRV-LLVM-Translator-21.1.1/lib/SPIRV/libSPIRV/spirv_internal.hpp
2025-09-29 12:53:11.000000000 +0200
+++ new/SPIRV-LLVM-Translator-21.1.2/lib/SPIRV/libSPIRV/spirv_internal.hpp
2025-10-17 16:44:20.000000000 +0200
@@ -76,6 +76,8 @@
IOpCooperativeMatrixConstructCheckedINTEL = 6195,
IOpCooperativeMatrixLoadOffsetINTEL = 6239,
IOpCooperativeMatrixStoreOffsetINTEL = 6240,
+ IOpPredicatedLoadINTEL = 6258,
+ IOpPredicatedStoreINTEL = 6259,
IOpJointMatrixWorkItemLengthINTEL = 6410,
IOpTypeTaskSequenceINTEL = 6199,
IOpMaskedGatherINTEL = 6428,
@@ -110,6 +112,7 @@
ICapabilityCooperativeMatrixOffsetInstructionsINTEL = 6238,
ICapabilityAtomicBFloat16AddINTEL = 6255,
ICapabilityAtomicBFloat16MinMaxINTEL = 6256,
+ ICapabilityPredicatedIOINTEL = 6257,
ICapabilityCooperativeMatrixPrefetchINTEL = 6411,
ICapabilityMaskedGatherScatterINTEL = 6427,
ICapabilityJointMatrixWIInstructionsINTEL = 6435,
@@ -208,6 +211,11 @@
_SPIRV_OP(Capability, AtomicBFloat16AddINTEL)
_SPIRV_OP(Capability, AtomicBFloat16MinMaxINTEL)
+
+_SPIRV_OP(Capability, PredicatedIOINTEL)
+_SPIRV_OP(Op, PredicatedLoadINTEL)
+_SPIRV_OP(Op, PredicatedStoreINTEL)
+
#undef _SPIRV_OP
constexpr SourceLanguage SourceLanguagePython =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/SPIRV-LLVM-Translator-21.1.1/test/AtomicCompareExchangeExplicit.ll
new/SPIRV-LLVM-Translator-21.1.2/test/AtomicCompareExchangeExplicit.ll
--- old/SPIRV-LLVM-Translator-21.1.1/test/AtomicCompareExchangeExplicit.ll
1970-01-01 01:00:00.000000000 +0100
+++ new/SPIRV-LLVM-Translator-21.1.2/test/AtomicCompareExchangeExplicit.ll
2025-10-17 16:44:20.000000000 +0200
@@ -0,0 +1,40 @@
+; RUN: llvm-as %s -o %t.bc
+; RUN: llvm-spirv %t.bc -spirv-text -o - | FileCheck %s --check-prefixes=CHECK
+; RUN: llvm-spirv %t.bc -o %t.spv
+; RUN: spirv-val %t.spv
+
+target datalayout =
"e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024"
+target triple = "spir64"
+
+; CHECK-DAG: 4 TypeInt [[#int:]] 32 0
+; CHECK-DAG: Constant [[#int]] [[#DeviceScope:]] 4
+; CHECK-DAG: Constant [[#int]] [[#SequentiallyConsistent_MS:]] 0
+; CHECK-DAG: 4 TypePointer [[#int_ptr:]] 4 [[#int]]
+; CHECK-DAG: 2 TypeBool [[#bool:]]
+
+define spir_kernel void @test_atomic_kernel() {
+entry:
+ %arrayidx7 = getelementptr i32, ptr addrspace(3) null, i64 0
+
+; CHECK: PtrAccessChain [[#int_ptr]] [[#Pointer:]] [[#]] [[#]]
+; CHECK: Load [[#int]] [[#Comparator:]] [[#]]
+; CHECK-NEXT: AtomicCompareExchange [[#int]] [[#Result:]] [[#Pointer]]
[[#DeviceScope]] [[#SequentiallyConsistent_MS]] [[#SequentiallyConsistent_MS]]
[[#]] [[#Comparator]]
+; CHECK-NEXT: Store [[#]] [[#Result]]
+; CHECK-NEXT: IEqual [[#bool]] [[#]] [[#Result]] [[#Comparator]]
+ %call10 = call spir_func i1
@_Z37atomic_compare_exchange_weak_explicitPU3AS3VU7_AtomiciPii12memory_orderS4_12memory_scope(ptr
addrspace(3) %arrayidx7, ptr null, i32 14, i32 0, i32 0, i32 0)
+
+; CHECK: Load [[#int]] [[#Comparator:]] [[#]]
+; CHECK-NEXT: AtomicCompareExchange [[#int]] [[#Result2:]] [[#Pointer]]
[[#DeviceScope]] [[#SequentiallyConsistent_MS]] [[#SequentiallyConsistent_MS]]
[[#]] [[#Comparator]]
+; CHECK-NEXT: Store [[#]] [[#Result2]]
+; CHECK-NEXT: IEqual [[#bool]] [[#]] [[#Result2]] [[#Comparator]]
+ %call11 = call spir_func i1
@_Z39atomic_compare_exchange_strong_explicitPU3AS3VU7_AtomiciPii12memory_orderS4_12memory_scope(ptr
addrspace(3) %arrayidx7, ptr null, i32 14, i32 0, i32 0, i32 0)
+ ret void
+}
+
+declare spir_func i1
@_Z37atomic_compare_exchange_weak_explicitPU3AS3VU7_AtomiciPii12memory_orderS4_12memory_scope(ptr
addrspace(3), ptr, i32, i32, i32, i32)
+declare spir_func i1
@_Z39atomic_compare_exchange_strong_explicitPU3AS3VU7_AtomiciPii12memory_orderS4_12memory_scope(ptr
addrspace(3), ptr, i32, i32, i32, i32)
+
+!opencl.ocl.version = !{!0}
+
+!0 = !{i32 3, i32 0}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/SPIRV-LLVM-Translator-21.1.1/test/extensions/INTEL/SPV_INTEL_predicated_io/predicated_io_generic.ll
new/SPIRV-LLVM-Translator-21.1.2/test/extensions/INTEL/SPV_INTEL_predicated_io/predicated_io_generic.ll
---
old/SPIRV-LLVM-Translator-21.1.1/test/extensions/INTEL/SPV_INTEL_predicated_io/predicated_io_generic.ll
1970-01-01 01:00:00.000000000 +0100
+++
new/SPIRV-LLVM-Translator-21.1.2/test/extensions/INTEL/SPV_INTEL_predicated_io/predicated_io_generic.ll
2025-10-17 16:44:20.000000000 +0200
@@ -0,0 +1,75 @@
+; Generated with:
+; source.cl:
+; int __spirv_PredicatedLoadINTEL(const __global int* pointer, bool predicate,
int default_value);
+; int __spirv_PredicatedLoadINTEL(const __global int* pointer, bool predicate,
int default_value, int memory_operands);
+; void __spirv_PredicatedStoreINTEL(const __global int* pointer, int object,
bool predicate);
+; void __spirv_PredicatedStoreINTEL(const __global int* pointer, int object,
bool predicate, int memory_operands);
+;
+; void foo(const __global int* load_pointer, __global int* store_pointer, int
default_value, int store_object, bool predicate) {
+; const int memory_ops = 0;
+; int result1 = __spirv_PredicatedLoadINTEL(load_pointer, predicate,
default_value);
+; int result2 = __spirv_PredicatedLoadINTEL(load_pointer, predicate,
default_value, memory_ops);
+; __spirv_PredicatedStoreINTEL(store_pointer, store_object, predicate);
+; __spirv_PredicatedStoreINTEL(store_pointer, store_object, predicate,
memory_ops);
+; }
+; clang -cc1 -cl-std=clc++2021 -triple spir64-unknown-unknown -emit-llvm
-finclude-default-header source.cl -o tmp.ll
+
+; RUN: llvm-as %s -o %t.bc
+; RUN: llvm-spirv %t.bc -o %t.spv --spirv-ext=+SPV_INTEL_predicated_io
+; RUN: llvm-spirv %t.spv -o %t.spt --to-text
+; RUN: FileCheck < %t.spt %s --check-prefix=CHECK-SPIRV
+
+; RUN: llvm-spirv %t.spv -o %t.rev.bc -r --spirv-target-env=SPV-IR
+; RUN: llvm-dis %t.rev.bc -o %t.rev.ll
+; RUN: FileCheck < %t.rev.ll %s --check-prefix=CHECK-LLVM
+
+; RUN: not llvm-spirv %t.bc 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR
+; CHECK-ERROR: RequiresExtension: Feature requires the following SPIR-V
extension:
+; CHECK-ERROR-NEXT: SPV_INTEL_predicated_io
+
+; CHECK-SPIRV: Capability PredicatedIOINTEL
+; CHECK-SPIRV: Extension "SPV_INTEL_predicated_io"
+; CHECK-SPIRV-DAG: TypeInt [[#Int32Ty:]] 32 0
+; CHECK-SPIRV-DAG: Constant [[#Int32Ty]] [[#Const0:]] 0
+; CHECK-SPIRV-DAG: TypeVoid [[#VoidTy:]]
+; CHECK-SPIRV-DAG: TypePointer [[#IntPtrTy:]] 5 [[#Int32Ty]]
+; CHECK-SPIRV-DAG: TypeBool [[#BoolTy:]]
+; CHECK-SPIRV: FunctionParameter [[#IntPtrTy]] [[#LoadPtr:]]
+; CHECK-SPIRV: FunctionParameter [[#IntPtrTy]] [[#StorePtr:]]
+; CHECK-SPIRV: FunctionParameter [[#Int32Ty]] [[#DefaultVal:]]
+; CHECK-SPIRV: FunctionParameter [[#Int32Ty]] [[#StoreObj:]]
+; CHECK-SPIRV: FunctionParameter [[#BoolTy]] [[#Predicate:]]
+; CHECK-SPIRV: PredicatedLoadINTEL [[#Int32Ty]] [[#Result1:]] [[#LoadPtr]]
[[#Predicate]] [[#DefaultVal]]
+; CHECK-SPIRV: PredicatedLoadINTEL [[#Int32Ty]] [[#Result2:]] [[#LoadPtr]]
[[#Predicate]] [[#DefaultVal]] [[#Const0]]
+; CHECK-SPIRV: PredicatedStoreINTEL [[#StorePtr]] [[#StoreObj]] [[#Predicate]]
+; CHECK-SPIRV: PredicatedStoreINTEL [[#StorePtr]] [[#StoreObj]] [[#Predicate]]
[[#Const0]]
+
+; CHECK-LLVM: call spir_func i32 @_Z27__spirv_PredicatedLoadINTELPU3AS1ibi(ptr
addrspace(1) %{{.*}}, i1 %{{.*}}, i32 %{{.*}})
+; CHECK-LLVM: call spir_func i32
@_Z27__spirv_PredicatedLoadINTELPU3AS1ibii(ptr addrspace(1) %{{.*}}, i1
%{{.*}}, i32 %{{.*}}, i32 0)
+; CHECK-LLVM: call spir_func void
@_Z28__spirv_PredicatedStoreINTELPU3AS1iib(ptr addrspace(1) %{{.*}}, i32
%{{.*}}, i1 %{{.*}})
+; CHECK-LLVM: call spir_func void
@_Z28__spirv_PredicatedStoreINTELPU3AS1iibi(ptr addrspace(1) %{{.*}}, i32
%{{.*}}, i1 %{{.*}}, i32 0)
+
+target datalayout =
"e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-n8:16:32:64"
+target triple = "spir64-unknown-unknown"
+
+define spir_func void @foo(ptr addrspace(1) %load_pointer, ptr addrspace(1)
%store_pointer, i32 %default_value, i32 %store_object, i1 zeroext %predicate) {
+entry:
+ %1 = call spir_func i32 @_Z27__spirv_PredicatedLoadINTELPU3AS1Kibi(ptr
addrspace(1) %load_pointer, i1 %predicate, i32 %default_value)
+ %2 = call spir_func i32 @_Z27__spirv_PredicatedLoadINTELPU3AS1Kibii(ptr
addrspace(1) %load_pointer, i1 %predicate, i32 %default_value, i32 0)
+ call spir_func void @_Z28__spirv_PredicatedStoreINTELPU3AS1Kiib(ptr
addrspace(1) %store_pointer, i32 %store_object, i1 %predicate)
+ call spir_func void @_Z28__spirv_PredicatedStoreINTELPU3AS1Kiibi(ptr
addrspace(1) %store_pointer, i32 %store_object, i1 %predicate, i32 0)
+ ret void
+}
+
+declare spir_func i32 @_Z27__spirv_PredicatedLoadINTELPU3AS1Kibi(ptr
addrspace(1), i1, i32)
+declare spir_func i32 @_Z27__spirv_PredicatedLoadINTELPU3AS1Kibii(ptr
addrspace(1), i1, i32, i32)
+declare spir_func void @_Z28__spirv_PredicatedStoreINTELPU3AS1Kiib(ptr
addrspace(1), i32, i1)
+declare spir_func void @_Z28__spirv_PredicatedStoreINTELPU3AS1Kiibi(ptr
addrspace(1), i32, i1, i32)
+
+!opencl.spir.version = !{!0}
+!spirv.Source = !{!1}
+!llvm.ident = !{!2}
+
+!0 = !{i32 1, i32 2}
+!1 = !{i32 4, i32 100000}
+!2 = !{!"clang version 17.0.0"}