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"}

Reply via email to