Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package intel-graphics-compiler for openSUSE:Factory checked in at 2024-03-13 22:18:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/intel-graphics-compiler (Old) and /work/SRC/openSUSE:Factory/.intel-graphics-compiler.new.1770 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "intel-graphics-compiler" Wed Mar 13 22:18:23 2024 rev:12 rq:1157139 version:1.0.15985.7 Changes: -------- --- /work/SRC/openSUSE:Factory/intel-graphics-compiler/intel-graphics-compiler.changes 2024-03-11 15:43:18.067123417 +0100 +++ /work/SRC/openSUSE:Factory/.intel-graphics-compiler.new.1770/intel-graphics-compiler.changes 2024-03-13 22:19:34.206464315 +0100 @@ -1,0 +2,9 @@ +Tue Mar 12 07:06:59 UTC 2024 - Patrik Jakobsson <patrik.jakobs...@suse.com> + +- Update to version 1.0.15985.7 + * No changelog was made available. +- Update vc_intrinsics to v0.16.0 + * Add support for XeHPCVG platform + * Add support for Arrow Lake and Lunar Lake devices + +------------------------------------------------------------------- Old: ---- igc-1.0.15610.11.tar.gz New: ---- igc-1.0.15985.7.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ intel-graphics-compiler.spec ++++++ --- /var/tmp/diff_new_pack.eMSTux/_old 2024-03-13 22:19:35.690519023 +0100 +++ /var/tmp/diff_new_pack.eMSTux/_new 2024-03-13 22:19:35.690519023 +0100 @@ -19,9 +19,9 @@ %global llvm_commit llvmorg-14.0.5 %global opencl_clang_commit cf95b338d14685e4f3402ab1828bef31d48f1fd6 %global spirv_llvm_translator_commit 493353d7fdc655f9f31abc874dd0adef7dd241c1 -%global vc_intrinsics_commit v0.14.0 +%global vc_intrinsics_commit v0.16.0 Name: intel-graphics-compiler -Version: 1.0.15610.11 +Version: 1.0.15985.7 Release: 1%{?dist} Summary: Intel Graphics Compiler for OpenCL License: MIT ++++++ igc-1.0.15610.11.tar.gz -> igc-1.0.15985.7.tar.gz ++++++ /work/SRC/openSUSE:Factory/intel-graphics-compiler/igc-1.0.15610.11.tar.gz /work/SRC/openSUSE:Factory/.intel-graphics-compiler.new.1770/igc-1.0.15985.7.tar.gz differ: char 13, line 1 ++++++ vc-intrinsics.zip ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vc-intrinsics-0.14.0/GenXIntrinsics/include/llvm/GenXIntrinsics/GenXIntrinsics.h new/vc-intrinsics-0.16.0/GenXIntrinsics/include/llvm/GenXIntrinsics/GenXIntrinsics.h --- old/vc-intrinsics-0.14.0/GenXIntrinsics/include/llvm/GenXIntrinsics/GenXIntrinsics.h 2023-10-25 00:27:31.000000000 +0200 +++ new/vc-intrinsics-0.16.0/GenXIntrinsics/include/llvm/GenXIntrinsics/GenXIntrinsics.h 2023-12-15 01:16:29.000000000 +0100 @@ -1,6 +1,6 @@ /*========================== begin_copyright_notice ============================ -Copyright (C) 2019-2021 Intel Corporation +Copyright (C) 2019-2023 Intel Corporation SPDX-License-Identifier: MIT @@ -86,6 +86,8 @@ Prefetch2D, Store, Store2D, + Load2DTyped, + Store2DTyped, Fence, LegacyAtomic, Atomic, @@ -475,6 +477,8 @@ return LSCCategory::Load; case GenXIntrinsic::genx_lsc_load2d_stateless: return LSCCategory::Load2D; + case GenXIntrinsic::genx_lsc_load2d_typed_bti: + return LSCCategory::Load2DTyped; case GenXIntrinsic::genx_lsc_prefetch_bti: case GenXIntrinsic::genx_lsc_prefetch_stateless: return LSCCategory::Prefetch; @@ -490,6 +494,8 @@ return LSCCategory::Store; case GenXIntrinsic::genx_lsc_store2d_stateless: return LSCCategory::Store2D; + case GenXIntrinsic::genx_lsc_store2d_typed_bti: + return LSCCategory::Store2DTyped; case GenXIntrinsic::genx_lsc_fence: return LSCCategory::Fence; case GenXIntrinsic::genx_lsc_atomic_bti: @@ -539,6 +545,17 @@ return isLSCLoad2D(getGenXIntrinsicID(F)); } +inline bool isLSCLoad2DTyped(unsigned IntrinID) { + return getLSCCategory(IntrinID) == LSCCategory::Load2DTyped; +} + +inline bool isLSCLoad2DTyped(const Value *V) { + return isLSCLoad2DTyped(getGenXIntrinsicID(V)); +} + +inline bool isLSCLoad2DTyped(const Function *F) { + return isLSCLoad2DTyped(getGenXIntrinsicID(F)); +} inline bool isLSCPrefetch(unsigned IntrinID) { return getLSCCategory(IntrinID) == LSCCategory::Prefetch; @@ -588,6 +605,17 @@ return isLSCStore2D(getGenXIntrinsicID(F)); } +inline bool isLSCStore2DTyped(unsigned IntrinID) { + return getLSCCategory(IntrinID) == LSCCategory::Store2DTyped; +} + +inline bool isLSCStore2DTyped(const Value *V) { + return isLSCStore2DTyped(getGenXIntrinsicID(V)); +} + +inline bool isLSCStore2DTyped(const Function *F) { + return isLSCStore2DTyped(getGenXIntrinsicID(F)); +} inline bool isLSCFence(unsigned IntrinID) { return getLSCCategory(IntrinID) == LSCCategory::Fence; @@ -642,6 +670,8 @@ case LSCCategory::Load2D: case LSCCategory::Prefetch2D: case LSCCategory::Store2D: + case LSCCategory::Load2DTyped: + case LSCCategory::Store2DTyped: return true; case LSCCategory::Load: case LSCCategory::Prefetch: @@ -663,6 +693,33 @@ return isLSC2D(getGenXIntrinsicID(F)); } +inline bool isLSCTyped(unsigned IntrinID) { + switch (getLSCCategory(IntrinID)) { + case LSCCategory::Load2DTyped: + case LSCCategory::Store2DTyped: + return true; + case LSCCategory::Store2D: + case LSCCategory::Load: + case LSCCategory::Load2D: + case LSCCategory::Prefetch: + case LSCCategory::Prefetch2D: + case LSCCategory::Store: + case LSCCategory::Fence: + case LSCCategory::LegacyAtomic: + case LSCCategory::Atomic: + case LSCCategory::NotLSC: + return false; + } + llvm_unreachable("Unknown LSC category"); +} + +inline bool isLSCTyped(const Value *V) { + return isLSCTyped(getGenXIntrinsicID(V)); +} + +inline bool isLSCTyped(const Function *F) { + return isLSCTyped(getGenXIntrinsicID(F)); +} // Dependency from visa_igc_common_header. // Converts vector size into LSC-appropriate code. @@ -710,6 +767,8 @@ case LSCCategory::Prefetch2D: case LSCCategory::Load2D: case LSCCategory::Store2D: + case LSCCategory::Load2DTyped: + case LSCCategory::Store2DTyped: case LSCCategory::Fence: case LSCCategory::NotLSC: llvm_unreachable("no such argument"); @@ -736,6 +795,8 @@ case LSCCategory::Store2D: return 3; case LSCCategory::Fence: + case LSCCategory::Load2DTyped: + case LSCCategory::Store2DTyped: case LSCCategory::NotLSC: llvm_unreachable("no such argument"); return Invalid; @@ -759,6 +820,8 @@ case LSCCategory::Prefetch2D: case LSCCategory::Load2D: case LSCCategory::Store2D: + case LSCCategory::Load2DTyped: + case LSCCategory::Store2DTyped: case LSCCategory::Fence: case LSCCategory::NotLSC: llvm_unreachable("no such argument"); @@ -786,6 +849,8 @@ case LSCCategory::Store2D: return 4; case LSCCategory::Fence: + case LSCCategory::Load2DTyped: + case LSCCategory::Store2DTyped: case LSCCategory::NotLSC: llvm_unreachable("no such argument"); return Invalid; @@ -809,6 +874,8 @@ case LSCCategory::Load2D: case LSCCategory::Prefetch2D: case LSCCategory::Store2D: + case LSCCategory::Load2DTyped: + case LSCCategory::Store2DTyped: return 0; case LSCCategory::NotLSC: llvm_unreachable("no such argument"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vc-intrinsics-0.14.0/GenXIntrinsics/include/llvm/GenXIntrinsics/Intrinsic_definitions.py new/vc-intrinsics-0.16.0/GenXIntrinsics/include/llvm/GenXIntrinsics/Intrinsic_definitions.py --- old/vc-intrinsics-0.14.0/GenXIntrinsics/include/llvm/GenXIntrinsics/Intrinsic_definitions.py 2023-10-25 00:27:31.000000000 +0200 +++ new/vc-intrinsics-0.16.0/GenXIntrinsics/include/llvm/GenXIntrinsics/Intrinsic_definitions.py 2023-12-15 01:16:29.000000000 +0100 @@ -1,6 +1,6 @@ # ========================== begin_copyright_notice ============================ # -# Copyright (C) 2019-2022 Intel Corporation +# Copyright (C) 2019-2023 Intel Corporation # # SPDX-License-Identifier: MIT # @@ -1584,7 +1584,8 @@ ### "dpas" : { "result" : "anyvector", "arguments" : [0,"anyvector","anyvector","int"], - "attributes" : "NoMem" + "attributes" : "NoMem", + "platforms" : [ "XeHP+", "~XeLPG", "~XeHPCVG" ], }, ### ``llvm.genx.dpas2.<return type>.<vector type>.<vector type>.<vector type>`` : dpas instruction (Dot Product Accumulate Systolic) @@ -1604,7 +1605,8 @@ ### "dpas2" : { "result" : "anyvector", "arguments" : ["anyvector","anyvector","anyvector","int","int", "int", "int", "int", "int"], - "attributes" : "NoMem" + "attributes" : "NoMem", + "platforms" : [ "XeHP+", "~XeLPG", "~XeHPCVG" ], }, ### ``llvm.genx.dpas.nosrc0.<return type>.<vector type>.<vector type>`` : dpas instruction (Dot Product Accumulate Systolic) with no src0 @@ -1618,7 +1620,8 @@ ### "dpas_nosrc0" : { "result" : "anyvector", "arguments" : ["anyvector","anyvector","int"], - "attributes" : "NoMem" + "attributes" : "NoMem", + "platforms" : [ "XeHP+", "~XeLPG", "~XeHPCVG" ], }, ### ``llvm.genx.dpasw.<return type>.<vector type>.<vector type>`` : dpasw instruction (Dot Product Accumulate Systolic) @@ -1633,7 +1636,9 @@ ### "dpasw" : { "result" : "anyvector", "arguments" : [0,"anyvector","anyvector","int"], - "attributes" : "NoMem" + "attributes" : "NoMem", + "platforms" : [ + "XeHP", "XeHPG", "XeLPGPlus" ], }, ### ``llvm.genx.dpasw.nosrc0.<return type>.<vector type>.<vector type>`` : dpasw instruction (Dot Product Accumulate Systolic) with no src0 @@ -1647,7 +1652,9 @@ ### "dpasw_nosrc0" : { "result" : "anyvector", "arguments" : ["anyvector","anyvector","int"], - "attributes" : "NoMem" + "attributes" : "NoMem", + "platforms" : [ + "XeHP", "XeHPG", "XeLPGPlus" ], }, ### ``llvm.genx.*dp4a*.<return type>.<vector type>.<vector type>.<vector type>`` : dp4a instruction (Dot Product 4 Accumulate) @@ -1905,6 +1912,7 @@ ### - 4 -> .wt (writethrough) ### - 5 -> .st (streaming) ### - 6 -> .ri (read-invalidate) +### - 7 -> .cc (const-cached) ### ### Only certain combinations of CachingL1 with CachingL3 are valid on hardware. ### @@ -1928,6 +1936,32 @@ ### | .ri | .ca | read-invalidate (e.g. last-use) on L1 loads / cache in L3 | ### +---------+-----+-----------------------------------------------------------------------+ ### +### Xe2 caching combinations +### +### +---------+-----+-----------------------------------------------------------------------+ +### | L1 | L3 | Notes | +### +---------+-----+-----------------------------------------------------------------------+ +### | .df | .df | default behavior on both L1 and L3 (L3 uses MOCS settings) | +### +---------+-----+-----------------------------------------------------------------------+ +### | .uc | .uc | uncached (bypass) both L1 and L3 | +### +---------+-----+-----------------------------------------------------------------------+ +### | .st | .uc | streaming L1 / bypass L3 | +### +---------+-----+-----------------------------------------------------------------------+ +### | .uc | .ca | bypass L1 / cache in L3 | +### +---------+-----+-----------------------------------------------------------------------+ +### | .ca | .uc | cache in L1 / bypass L3 | +### +---------+-----+-----------------------------------------------------------------------+ +### | .ca | .ca | cache in both L1 and L3 | +### +---------+-----+-----------------------------------------------------------------------+ +### | .st | .ca | streaming L1 / cache in L3 | +### +---------+-----+-----------------------------------------------------------------------+ +### | .ca | .cc | cache in L1 / L3 cached as constant | +### +---------+-----+-----------------------------------------------------------------------+ +### | .uc | .cc | bypass L1 / L3 cached as constant | +### +---------+-----+-----------------------------------------------------------------------+ +### | .ri | .ri | read-invalidate both L1 and L3 | +### +---------+-----+-----------------------------------------------------------------------+ +### ### Immediate offset. The compiler may be able to fuse this add into the message, otherwise ### additional instructions are generated to honor the semantics. ### @@ -2025,6 +2059,7 @@ ### - 4 -> .wt (writethrough) ### - 5 -> .st (streaming) ### - 6 -> .ri (read-invalidate) +### - 7 -> .cc (const-cached) ### ### Only certain combinations of CachingL1 with CachingL3 are valid on hardware. ### @@ -2048,6 +2083,16 @@ ### | .ri | .ca | read-invalidate (e.g. last-use) on L1 loads / cache in L3 | ### +---------+-----+-----------------------------------------------------------------------+ ### +### Xe2 caching combinations - same as above w/o(".ri.ca") plus next variants: +### +### +---------+-----+-----------------------------------------------------------------------+ +### | .ca | .cc | cache in L1 / L3 cached as constant | +### +---------+-----+-----------------------------------------------------------------------+ +### | .uc | .cc | bypass L1 / L3 cached as constant | +### +---------+-----+-----------------------------------------------------------------------+ +### | .ri | .ri | read-invalidate both L1 and L3 | +### +---------+-----+-----------------------------------------------------------------------+ +### ### Immediate offset. The compiler may be able to fuse this add into the message, otherwise ### additional instructions are generated to honor the semantics. ### Alternative variant for predicated variant of loads - merge destination for disabled @@ -2249,6 +2294,60 @@ "attributes" : "None" }, +### ``llvm.genx.lsc.*.quad.typed.bti.<return type>.<predicate type>.<address type>``: LSC typed load/store/prefetch +### ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +### +### * arg0: vXi1 predicate (overloaded) +### * arg1: i8 Caching behavior for L1, [MBC] +### * arg2: i8 Caching behavior for L3, [MBC] +### * arg3: i8 Channel mask for quad versions, [MBC] +### * arg4: i32 Surface index (BTI) +### * arg5: vxi32 U pixel address (overloaded) +### * arg6: vxi32 V pixel address +### * arg7: vxi32 R pixel address +### * arg8: vxi32 LOD pixel address +### * arg9: vXi32 or vXf32 old value of the data read (load) or data to write (store) +### +### * Return value: the value read or void +### + "lsc_load_merge_quad_typed_bti": { "result": "anyvector", + "arguments": ["anyvector", "char", "char", "char", "int", "anyvector", 2, 2, 2, 0], + "attributes": "ReadMem", + "platforms" : "Xe2+", }, + "lsc_store_quad_typed_bti": { "result": "void", + "arguments": ["anyvector", "char", "char", "char", "int", "anyvector", 1, 1, 1, "anyvector"], + "attributes": "WriteMem", + "platforms" : "Xe2+", }, + "lsc_prefetch_quad_typed_bti": { "result": "void", + "arguments": ["anyvector", "char", "char", "char", "int", "anyvector", 1, 1, 1], + "attributes": "None", + "platforms" : "Xe2+", }, + +### ``llvm.genx.lsc.*2d.typed.bti.[return type/vector type]`` : LSC typed 2d block load/store/prefetch +### ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +### * arg0: i8 Caching behavior for L1 +### * arg1: i8 Caching behavior for L3 +### * arg2: i32 Surface +### * arg3: i32 BlockHeight +### * arg4: i32 BlockWidth +### * arg5: i32 XOff +### * arg6: i32 YOff +### * arg7: data to write (store only) +### +### * Return value: the value read or void +### + "lsc_load2d_typed_bti":{ "result" : "anyvector", + "arguments" : ["char", "char", "int", "int", "int", "int", "int"], + "attributes" : "ReadMem", + "platforms" : "Xe2+", }, + "lsc_store2d_typed_bti":{ "result" : "void", + "arguments" : ["char", "char", "int", "int", "int", "int", "int", "anyvector"], + "attributes" : "WriteMem", + "platforms" : "Xe2+", }, + "lsc_prefetch2d_typed_bti":{ "result" : "void", + "arguments" : ["char", "char", "int", "int", "int", "int", "int"], + "attributes" : "ReadMem", + "platforms" : "Xe2+", }, ### ``llvm.genx.lsc.atomic.*.<return type>.<any type>.<any vector>`` : lsc_atomic instructions ### ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -2606,42 +2705,52 @@ "dword_atomic_add" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0,0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic_sub" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0,0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic_min" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0,0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic_max" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0,0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic_xchg" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0,0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic_and" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0,0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic_or" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0,0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic_xor" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0,0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic_imin" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0,0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic_imax" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0,0], "attributes" : "None", + "platforms" : "-Xe2", }, ### ``llvm.genx.dword.atomic2.*.<return type>.<vector type.<any int>`` : dword atomic with binary operator (variant with no oldval) @@ -2671,42 +2780,52 @@ "dword_atomic2_add" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_sub" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_min" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_max" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_xchg" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_and" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_or" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_xor" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_imin" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_imax" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, ### ``llvm.genx.dword.atomic.*.<return type>.<vector type>.<any int>`` : dword atomic with fmin/fmax operation @@ -2729,18 +2848,22 @@ "dword_atomic_fmin" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0,0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic_fmax" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0,0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic_fadd" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0,0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic_fsub" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0,0], "attributes" : "None", + "platforms" : "-Xe2", }, ### ``llvm.genx.dword.atomic2.*.<return type>.<vector type>.<any int>`` : dword atomic with fmin/fmax operation (variant with no oldval) @@ -2762,18 +2885,22 @@ "dword_atomic2_fmin" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_fmax" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_fadd" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_fsub" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, @@ -2796,10 +2923,12 @@ "dword_atomic_inc" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic_dec" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,0], "attributes" : "None", + "platforms" : "-Xe2", }, ### ``llvm.genx.dword.atomic2.*.<return type>.<any vector>`` : dword atomic with inc/dec operation (variant with no oldval) @@ -2820,10 +2949,12 @@ "dword_atomic2_inc" : { "result" : "anyvector", "arguments" : ["anyvector","int",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_dec" : { "result" : "anyvector", "arguments" : ["anyvector","int",0], "attributes" : "None", + "platforms" : "-Xe2", }, ### ``llvm.genx.dword.atomic.cmpxchg.<return type>.<vector type>`` : vISA DWORD_ATOMIC CMPXCHG instruction @@ -2845,6 +2976,7 @@ "dword_atomic_cmpxchg" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,0,0,0], "attributes" : "None", + "platforms" : "-Xe2", }, ### ``llvm.genx.dword.atomic2.cmpxchg.<return type>.<vector type>`` : vISA DWORD_ATOMIC CMPXCHG instruction (variant with no oldval) @@ -2865,6 +2997,7 @@ "dword_atomic2_cmpxchg" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,0,0], "attributes" : "None", + "platforms" : "-Xe2", }, ### ``llvm.genx.dword.atomic.fcmpwr.<return type>.<vector type>.<any int>`` : vISA DWORD_ATOMIC FCMPWR instruction @@ -2886,6 +3019,7 @@ "dword_atomic_fcmpwr" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0,0,0], "attributes" : "None", + "platforms" : "-Xe2", }, ### ``llvm.genx.dword.atomic2.fcmpwr.<return type>.<vector type>.<any int>`` : vISA DWORD_ATOMIC FCMPWR instruction (variant with no oldval) @@ -2906,6 +3040,7 @@ "dword_atomic2_fcmpwr" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0,0], "attributes" : "None", + "platforms" : "-Xe2", }, ### ``llvm.genx.typed.atomic.*.<return type>.<vector type>.<any int>`` : atomic typed with binary operator @@ -2937,42 +3072,52 @@ ### "typed_atomic_add" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,"anyint",2,2,2], + "platforms" : "-Xe2", "attributes" : "None" }, "typed_atomic_sub" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,"anyint",2,2,2], + "platforms" : "-Xe2", "attributes" : "None" }, "typed_atomic_min" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,"anyint",2,2,2], + "platforms" : "-Xe2", "attributes" : "None" }, "typed_atomic_max" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,"anyint",2,2,2], + "platforms" : "-Xe2", "attributes" : "None" }, "typed_atomic_xchg" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,"anyint",2,2,2], + "platforms" : "-Xe2", "attributes" : "None" }, "typed_atomic_and" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,"anyint",2,2,2], + "platforms" : "-Xe2", "attributes" : "None" }, "typed_atomic_or" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,"anyint",2,2,2], + "platforms" : "-Xe2", "attributes" : "None" }, "typed_atomic_xor" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,"anyint",2,2,2], + "platforms" : "-Xe2", "attributes" : "None" }, "typed_atomic_imin" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,"anyint",2,2,2], + "platforms" : "-Xe2", "attributes" : "None" }, "typed_atomic_imax" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,"anyint",2,2,2], + "platforms" : "-Xe2", "attributes" : "None" }, @@ -2997,18 +3142,22 @@ ### "typed_atomic_fmin" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,"anyint",2,2,2], + "platforms" : "-Xe2", "attributes" : "None" }, "typed_atomic_fmax" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,"anyint",2,2,2], + "platforms" : "-Xe2", "attributes" : "None" }, "typed_atomic_fadd" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,"anyint",2,2,2], + "platforms" : "-Xe2", "attributes" : "None" }, "typed_atomic_fsub" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,"anyint",2,2,2], + "platforms" : "-Xe2", "attributes" : "None" }, @@ -3032,10 +3181,12 @@ ### "typed_atomic_inc" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",2,2,2], + "platforms" : "-Xe2", "attributes" : "None" }, "typed_atomic_dec" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",2,2,2], + "platforms" : "-Xe2", "attributes" : "None" }, @@ -3059,6 +3210,7 @@ ### "typed_atomic_cmpxchg" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,0,"anyint",2,2,2], + "platforms" : "-Xe2", "attributes" : "None" }, @@ -3082,6 +3234,7 @@ ### "typed_atomic_fcmpwr" : { "result" : "anyvector", "arguments" : ["anyvector","int",0,0,"anyint",2,2,2], + "platforms" : "-Xe2", "attributes" : "None" }, @@ -3132,6 +3285,7 @@ "gather_scaled" : { "result" : "anyvector", "arguments" : ["anyvector","int","short","int","int","anyint",0], "attributes" : "ReadMem", + "platforms" : "-Xe2", }, ### ``llvm.genx.gather.scaled2`` : vISA GATHER_SCALED instruction @@ -3158,6 +3312,7 @@ "gather_scaled2" : { "result" : "anyvector", "arguments" : ["int","short","int","int","anyint"], "attributes" : "ReadMem", + "platforms" : "-Xe2", }, ### ``llvm.genx.gather.masked.scaled2`` : vISA GATHER_SCALED instruction @@ -3177,6 +3332,7 @@ "gather_masked_scaled2" : { "result" : "anyvector", "arguments" : ["int","short","int","int","anyint","anyvector"], "attributes" : "ReadMem", + "platforms" : "-Xe2", }, @@ -3208,6 +3364,7 @@ "gather4_scaled" : { "result" : "anyvector", "arguments" : ["anyvector","int","short","int","int","anyint",0], "attributes" : "ReadMem" , + "platforms" : "-Xe2", }, ### ``llvm.genx.gather4.scaled2`` : vISA GATHER4_SCALED instruction @@ -3239,6 +3396,7 @@ "gather4_scaled2" : { "result" : "anyvector", "arguments" : ["int","short","int","int","anyint"], "attributes" : "ReadMem", + "platforms" : "-Xe2", }, ### ``llvm.genx.gather4.masked.scaled2`` : vISA GATHER4_SCALED instruction @@ -3257,6 +3415,7 @@ "gather4_masked_scaled2" : { "result" : "anyvector", "arguments" : ["int","short","int","int","anyint","anyvector"], "attributes" : "ReadMem", + "platforms" : "-Xe2", }, @@ -3288,6 +3447,7 @@ "gather4_typed" : { "result" : "anyvector", "arguments" : ["int","anyvector","int","anyvector",2,2,0], "attributes" : "ReadMem", + "platforms" : "-Xe2", }, ### ``llvm.genx.media.ld.<return type>`` : vISA MEDIA_LD instruction @@ -3314,6 +3474,7 @@ "media_ld" : { "result" : "anyvector", "arguments" : ["int","int","int","int","int","int"], "attributes" : "ReadMem", + "platforms" : "-Xe2", }, ### ``llvm.genx.media.st.<vector type>`` : vISA MEDIA_ST instruction @@ -3339,6 +3500,7 @@ "media_st" : { "result" : "void", "arguments" : ["int","int","int","int","int","int","anyvector"], "attributes" : "None", + "platforms" : "-Xe2", }, ### ``llvm.genx.oword.ld*.<return type>`` : oword load instruction @@ -3358,10 +3520,12 @@ "oword_ld" : { "result" : "anyvector", "arguments" : ["int","int","int"], "attributes" : "ReadMem", + "platforms" : "-Xe2", }, "oword_ld_unaligned" : { "result" : "anyvector", "arguments" : ["int","int","int"], "attributes" : "ReadMem", + "platforms" : "-Xe2", }, ### ``llvm.genx.oword.st.<vector type>`` : vISA OWORD_ST instruction @@ -3377,6 +3541,7 @@ "oword_st" : { "result" : "void", "arguments" : ["int","int","anyvector"], "attributes" : "None", + "platforms" : "-Xe2", }, ### ``llvm.genx.scatter.private.<vector type>.<ptr type>.<any int>.<vector type>`` : CM internal, no VISA @@ -3419,6 +3584,7 @@ "scatter_scaled" : { "result" : "void", "arguments" : ["anyvector","int","short","int","int","anyint","anyvector"], "attributes" : "None", + "platforms" : "-Xe2", }, ### ``llvm.genx.scatter4.scaled.<vector type>.<any int>.<vector type>`` : vISA SCATTER4_SCALED instruction @@ -3448,6 +3614,7 @@ "scatter4_scaled" : { "result" : "void", "arguments" : ["anyvector","int","short","int","int","anyint","anyvector"], "attributes" : "None", + "platforms" : "-Xe2", }, ### ``llvm.genx.scatter4.typed.<vector type>.<vector type>.<vector type>`` : vISA SCATTER4_TYPED instruction @@ -3476,6 +3643,7 @@ "scatter4_typed" : { "result" : "void", "arguments" : ["int","anyvector","int","anyvector",1,1,"anyvector"], "attributes" : "None", + "platforms" : "-Xe2", }, ### ``llvm.genx.transpose.ld.<return type>`` : vISA TRANSPOSE_LD instruction @@ -3496,6 +3664,7 @@ ### "transpose_ld" : { "result" : "anyvector", "arguments" : ["int","int","int","int"], + "platforms" : "-Xe2", "attributes" : "ReadMem" }, @@ -3526,42 +3695,52 @@ ### "untyped_atomic_add" : { "result" : "anyvector", "arguments" : ["anyvector","int","int",0,0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "untyped_atomic_sub" : { "result" : "anyvector", "arguments" : ["anyvector","int","int",0,0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "untyped_atomic_min" : { "result" : "anyvector", "arguments" : ["anyvector","int","int",0,0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "untyped_atomic_max" : { "result" : "anyvector", "arguments" : ["anyvector","int","int",0,0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "untyped_atomic_xchg" : { "result" : "anyvector", "arguments" : ["anyvector","int","int",0,0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "untyped_atomic_and" : { "result" : "anyvector", "arguments" : ["anyvector","int","int",0,0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "untyped_atomic_or" : { "result" : "anyvector", "arguments" : ["anyvector","int","int",0,0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "untyped_atomic_xor" : { "result" : "anyvector", "arguments" : ["anyvector","int","int",0,0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "untyped_atomic_imin" : { "result" : "anyvector", "arguments" : ["anyvector","int","int",0,0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "untyped_atomic_imax" : { "result" : "anyvector", "arguments" : ["anyvector","int","int",0,0,0], + "platforms" : "-Xe2", "attributes" : "None" }, @@ -3583,10 +3762,12 @@ ### "untyped_atomic_inc" : { "result" : "anyvector", "arguments" : ["anyvector","int","int",0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "untyped_atomic_dec" : { "result" : "anyvector", "arguments" : ["anyvector","int","int",0,0], + "platforms" : "-Xe2", "attributes" : "None" }, @@ -3608,6 +3789,7 @@ ### "untyped_atomic_cmpxchg" : { "result" : "anyvector", "arguments" : ["anyvector","int","int",0,0,0,0], + "platforms" : "-Xe2", "attributes" : "None" }, @@ -3628,10 +3810,12 @@ ### "svm_block_ld" : { "result" : "anyvector", "arguments" : ["anyint"], + "platforms" : "-Xe2", "attributes" : "ReadMem" }, "svm_block_ld_unaligned" : { "result" : "anyvector", "arguments" : ["anyint"], + "platforms" : "-Xe2", "attributes" : "ReadMem" }, @@ -3647,6 +3831,7 @@ ### "svm_block_st" : { "result" : "void", "arguments" : ["anyint","anyvector"], + "platforms" : "-Xe2", "attributes" : "None" }, @@ -3669,6 +3854,7 @@ ### "svm_gather" : { "result" : "anyvector", "arguments" : ["anyvector","int","anyint",0], + "platforms" : "-Xe2", "attributes" : "ReadMem" }, @@ -3699,6 +3885,7 @@ ### "svm_gather4_scaled" : { "result" : "anyvector", "arguments" : ["anyvector","int","short","long","anyint",0], + "platforms" : "-Xe2", "attributes" : "ReadMem" }, @@ -3719,6 +3906,7 @@ ### "svm_scatter" : { "result" : "void", "arguments" : ["anyvector","int","anyint","anyvector"], + "platforms" : "-Xe2", "attributes" : "None" }, @@ -3747,6 +3935,7 @@ ### "svm_scatter4_scaled" : { "result" : "void", "arguments" : ["anyvector","int","short","long","anyint","anyvector"], + "platforms" : "-Xe2", "attributes" : "None" }, @@ -3775,42 +3964,52 @@ ### "svm_atomic_add" : { "result" : "anyvector", "arguments" : ["anyvector","anyint",0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "svm_atomic_sub" : { "result" : "anyvector", "arguments" : ["anyvector","anyint",0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "svm_atomic_min" : { "result" : "anyvector", "arguments" : ["anyvector","anyint",0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "svm_atomic_max" : { "result" : "anyvector", "arguments" : ["anyvector","anyint",0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "svm_atomic_xchg" : { "result" : "anyvector", "arguments" : ["anyvector","anyint",0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "svm_atomic_and" : { "result" : "anyvector", "arguments" : ["anyvector","anyint",0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "svm_atomic_or" : { "result" : "anyvector", "arguments" : ["anyvector","anyint",0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "svm_atomic_xor" : { "result" : "anyvector", "arguments" : ["anyvector","anyint",0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "svm_atomic_imin" : { "result" : "anyvector", "arguments" : ["anyvector","anyint",0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "svm_atomic_imax" : { "result" : "anyvector", "arguments" : ["anyvector","anyint",0,0], + "platforms" : "-Xe2", "attributes" : "None" }, @@ -3830,10 +4029,12 @@ ### "svm_atomic_inc" : { "result" : "anyvector", "arguments" : ["anyvector","anyint",0], + "platforms" : "-Xe2", "attributes" : "None" }, "svm_atomic_dec" : { "result" : "anyvector", "arguments" : ["anyvector","anyint",0], + "platforms" : "-Xe2", "attributes" : "None" }, @@ -3853,6 +4054,7 @@ ### "svm_atomic_cmpxchg" : { "result" : "anyvector", "arguments" : ["anyvector","anyint",0,0,0], + "platforms" : "-Xe2", "attributes" : "None" }, @@ -3873,10 +4075,12 @@ ### "svm_atomic_fmin" : { "result" : "anyvector", "arguments" : ["anyvector","anyint",0,0], + "platforms" : "-Xe2", "attributes" : "None" }, "svm_atomic_fmax" : { "result" : "anyvector", "arguments" : ["anyvector","anyint",0,0], + "platforms" : "-Xe2", "attributes" : "None" }, @@ -3896,6 +4100,7 @@ ### "svm_atomic_fcmpwr" : { "result" : "anyvector", "arguments" : ["anyvector","anyint",0,0,0], + "platforms" : "-Xe2", "attributes" : "None" }, @@ -5234,42 +5439,52 @@ "dword_atomic2_add_predef_surface" : { "result" : "anyvector", "arguments" : ["anyvector","anyptr","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_sub_predef_surface" : { "result" : "anyvector", "arguments" : ["anyvector","anyptr","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_min_predef_surface" : { "result" : "anyvector", "arguments" : ["anyvector","anyptr","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_max_predef_surface" : { "result" : "anyvector", "arguments" : ["anyvector","anyptr","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_xchg_predef_surface" : { "result" : "anyvector", "arguments" : ["anyvector","anyptr","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_and_predef_surface" : { "result" : "anyvector", "arguments" : ["anyvector","anyptr","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_or_predef_surface" : { "result" : "anyvector", "arguments" : ["anyvector","anyptr","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_xor_predef_surface" : { "result" : "anyvector", "arguments" : ["anyvector","anyptr","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_imin_predef_surface" : { "result" : "anyvector", "arguments" : ["anyvector","anyptr","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_imax_predef_surface" : { "result" : "anyvector", "arguments" : ["anyvector","anyptr","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, ## ``llvm.genx.dword.atomic2.*.predef.surface`` : dword atomic with fmin/fmax operation with predefined surface @@ -5293,18 +5508,22 @@ "dword_atomic2_fmin_predef_surface" : { "result" : "anyvector", "arguments" : ["anyvector","anyptr","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_fmax_predef_surface" : { "result" : "anyvector", "arguments" : ["anyvector","anyptr","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_fadd_predef_surface" : { "result" : "anyvector", "arguments" : ["anyvector","anyptr","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_fsub_predef_surface" : { "result" : "anyvector", "arguments" : ["anyvector","anyptr","anyint",0], "attributes" : "None", + "platforms" : "-Xe2", }, ## ``llvm.genx.dword.atomic2.*.predef.surface`` : dword atomic with inc/dec operation with predefined surface @@ -5325,10 +5544,12 @@ "dword_atomic2_inc_predef_surface" : { "result" : "anyvector", "arguments" : ["anyvector","anyptr","anyint"], "attributes" : "None", + "platforms" : "-Xe2", }, "dword_atomic2_dec_predef_surface" : { "result" : "anyvector", "arguments" : ["anyvector","anyptr","anyint"], "attributes" : "None", + "platforms" : "-Xe2", }, ## ``llvm.genx.dword.atomic2.cmpxchg.predef.surface`` : vISA DWORD_ATOMIC CMPXCHG instruction with predefined surface @@ -5349,6 +5570,7 @@ "dword_atomic2_cmpxchg_predef_surface" : { "result" : "anyvector", "arguments" : ["anyvector","anyptr","anyint",0,0], "attributes" : "None", + "platforms" : "-Xe2", }, ## ``llvm.genx.dword.atomic2.fcmpwr.predef.surface`` : vISA DWORD_ATOMIC FCMPWR instruction with predefined surface @@ -5369,6 +5591,7 @@ "dword_atomic2_fcmpwr_predef_surface" : { "result" : "anyvector", "arguments" : ["anyvector","anyptr","anyint",0,0], "attributes" : "None", + "platforms" : "-Xe2", }, ## ``llvm.genx.gather.masked.scaled2.predef.surface`` : vISA GATHER_SCALED instruction with predefined surface @@ -5387,6 +5610,7 @@ "gather_masked_scaled2_predef_surface" : { "result" : "anyvector", "arguments" : ["int","short","anyptr","int","anyint","anyvector"], "attributes" : "ReadMem", + "platforms" : "-Xe2", }, ## ``llvm.genx.gather4.masked.scaled2.predef.surface`` : vISA GATHER4_SCALED instruction with predefined surface @@ -5405,6 +5629,7 @@ "gather4_masked_scaled2_predef_surface" : { "result" : "anyvector", "arguments" : ["int","short","anyptr","int","anyint","anyvector"], "attributes" : "ReadMem", + "platforms" : "-Xe2", }, ## ``llvm.genx.scatter.scaled.predef.surface`` : vISA SCATTER_SCALED instruction with predefined surface @@ -5430,6 +5655,7 @@ "scatter_scaled_predef_surface" : { "result" : "void", "arguments" : ["anyvector","int","short","anyptr","int","anyint","anyvector"], "attributes" : "None", + "platforms" : "-Xe2", }, ## ``llvm.genx.scatter4.scaled.predef.surface`` : vISA SCATTER4_SCALED instruction with predefined surface @@ -5459,6 +5685,7 @@ "scatter4_scaled_predef_surface" : { "result" : "void", "arguments" : ["anyvector","int","short","anyptr","int","anyint","anyvector"], "attributes" : "None", + "platforms" : "-Xe2", }, ## ``llvm.genx.oword.ld*.predef.surface`` : oword load instruction with predefined surface @@ -5478,11 +5705,13 @@ "oword_ld_predef_surface" : { "result" : "anyvector", "arguments" : ["int", "anyptr", "int"], "attributes": "ReadMem", + "platforms" : "-Xe2", }, "oword_ld_unaligned_predef_surface" : { "result" : "anyvector", "arguments": ["int", "anyptr", "int"], "attributes" : "ReadMem", + "platforms" : "-Xe2", }, ## ``llvm.genx.oword.st.predef.surface`` : vISA OWORD_ST instruction with predefined surface @@ -5498,6 +5727,7 @@ "oword_st_predef_surface" : { "result" : "void", "arguments" : ["anyptr", "int", "anyvector"], "attributes" : "None", + "platforms" : "-Xe2", }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vc-intrinsics-0.14.0/GenXIntrinsics/include/llvm/GenXIntrinsics/Intrinsics.py new/vc-intrinsics-0.16.0/GenXIntrinsics/include/llvm/GenXIntrinsics/Intrinsics.py --- old/vc-intrinsics-0.14.0/GenXIntrinsics/include/llvm/GenXIntrinsics/Intrinsics.py 2023-10-25 00:27:31.000000000 +0200 +++ new/vc-intrinsics-0.16.0/GenXIntrinsics/include/llvm/GenXIntrinsics/Intrinsics.py 2023-12-15 01:16:29.000000000 +0100 @@ -2,7 +2,7 @@ # ========================== begin_copyright_notice ============================ # -# Copyright (C) 2019-2022 Intel Corporation +# Copyright (C) 2019-2023 Intel Corporation # # SPDX-License-Identifier: MIT # @@ -87,7 +87,10 @@ "XeHP", "XeHPG", "XeLPG", + "XeLPGPlus", "XeHPC", + "XeHPCVG", + "Xe2", ] def getAttributeList(Attrs): @@ -570,7 +573,7 @@ platf_id = platforms.get(platf_expr[1:]) if platf_id is None: raise NameError("Error in platf in " + str(Intrinsics[ID_array[i]])) - curr_line[j] = 0; + curr_line[platf_id] = 0; elif platf_expr == "ALL": curr_line = [1]*len(platforms) else: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vc-intrinsics-0.14.0/GenXIntrinsics/lib/GenXIntrinsics/AdaptorsCommon.cpp new/vc-intrinsics-0.16.0/GenXIntrinsics/lib/GenXIntrinsics/AdaptorsCommon.cpp --- old/vc-intrinsics-0.14.0/GenXIntrinsics/lib/GenXIntrinsics/AdaptorsCommon.cpp 2023-10-25 00:27:31.000000000 +0200 +++ new/vc-intrinsics-0.16.0/GenXIntrinsics/lib/GenXIntrinsics/AdaptorsCommon.cpp 2023-12-15 01:16:29.000000000 +0100 @@ -40,7 +40,9 @@ continue; #if VC_INTR_LLVM_VERSION_MAJOR >= 13 +#if VC_INTR_LLVM_VERSION_MAJOR < 18 if (PTy->isOpaque()) +#endif // VC_INTR_LLVM_VERSION_MAJOR < 18 continue; #endif // VC_INTR_LLVM_VERSION_MAJOR >= 13 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vc-intrinsics-0.14.0/GenXIntrinsics/lib/GenXIntrinsics/GenXIntrinsics.cpp new/vc-intrinsics-0.16.0/GenXIntrinsics/lib/GenXIntrinsics/GenXIntrinsics.cpp --- old/vc-intrinsics-0.14.0/GenXIntrinsics/lib/GenXIntrinsics/GenXIntrinsics.cpp 2023-10-25 00:27:31.000000000 +0200 +++ new/vc-intrinsics-0.16.0/GenXIntrinsics/lib/GenXIntrinsics/GenXIntrinsics.cpp 2023-12-15 01:16:29.000000000 +0100 @@ -1,6 +1,6 @@ /*========================== begin_copyright_notice ============================ -Copyright (C) 2019-2021 Intel Corporation +Copyright (C) 2019-2023 Intel Corporation SPDX-License-Identifier: MIT @@ -426,10 +426,14 @@ /// parse ffXX as f(fXX) or f(fX)X. (X is a placeholder for any other type.) static std::string getMangledTypeStr(Type *Ty) { std::string Result; + if (!Ty) + return Result; if (PointerType *PTyp = dyn_cast<PointerType>(Ty)) { Result += "p" + llvm::utostr(PTyp->getAddressSpace()); #if VC_INTR_LLVM_VERSION_MAJOR >= 13 +#if VC_INTR_LLVM_VERSION_MAJOR < 18 if (PTyp->isOpaque()) +#endif // VC_INTR_LLVM_VERSION_MAJOR < 18 return Result; #endif // VC_INTR_LLVM_VERSION_MAJOR >= 13 Result += getMangledTypeStr(VCINTR::Type::getNonOpaquePtrEltTy(PTyp)); @@ -463,7 +467,7 @@ for (auto I : TargetTy->int_params()) Result += "_" + llvm::utostr(I); #endif // VC_INTR_LLVM_VERSION_MAJOR >= 16 - } else if (Ty) { + } else { Result += EVT::getEVT(Ty).getEVTString(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vc-intrinsics-0.14.0/GenXIntrinsics/lib/GenXIntrinsics/GenXSPIRVWriterAdaptor.cpp new/vc-intrinsics-0.16.0/GenXIntrinsics/lib/GenXIntrinsics/GenXSPIRVWriterAdaptor.cpp --- old/vc-intrinsics-0.14.0/GenXIntrinsics/lib/GenXIntrinsics/GenXSPIRVWriterAdaptor.cpp 2023-10-25 00:27:31.000000000 +0200 +++ new/vc-intrinsics-0.16.0/GenXIntrinsics/lib/GenXIntrinsics/GenXSPIRVWriterAdaptor.cpp 2023-12-15 01:16:29.000000000 +0100 @@ -542,6 +542,11 @@ for (auto &&ArgPair : llvm::zip(F.args(), NewF->args())) rewriteArgumentUses(InsPt, std::get<0>(ArgPair), std::get<1>(ArgPair)); +#if VC_INTR_LLVM_VERSION_MAJOR >= 17 + // There might be module level named metadata referencing old function, so replace those usages with new function. + // This can be done safely (will not cause type mismatch) when only opaque pointers are used (since LLVM 17). + F.replaceAllUsesWith(NewF); +#endif F.eraseFromParent(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vc-intrinsics-0.14.0/GenXIntrinsics/lib/GenXIntrinsics/GenXSimdCFLowering.cpp new/vc-intrinsics-0.16.0/GenXIntrinsics/lib/GenXIntrinsics/GenXSimdCFLowering.cpp --- old/vc-intrinsics-0.14.0/GenXIntrinsics/lib/GenXIntrinsics/GenXSimdCFLowering.cpp 2023-10-25 00:27:31.000000000 +0200 +++ new/vc-intrinsics-0.16.0/GenXIntrinsics/lib/GenXIntrinsics/GenXSimdCFLowering.cpp 2023-12-15 01:16:29.000000000 +0100 @@ -1,6 +1,6 @@ /*========================== begin_copyright_notice ============================ -Copyright (C) 2015-2022 Intel Corporation +Copyright (C) 2015-2023 Intel Corporation SPDX-License-Identifier: MIT @@ -1840,7 +1840,7 @@ for (auto bi = BB->begin(), be = BB->end(); bi != be; ++bi) { Instruction *Inst = &*bi; // doing the work - if (auto CIE = dyn_cast_or_null<CallInst>(Inst)) { + if (auto *CIE = dyn_cast<CallInst>(Inst)) { if (GenXIntrinsic::getGenXIntrinsicID(CIE) == GenXIntrinsic::genx_unmask_end) { auto LoadV = dyn_cast<LoadInst>(CIE->getArgOperand(0)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vc-intrinsics-0.14.0/GenXIntrinsics/lib/GenXIntrinsics/GenXSingleElementVectorUtil.cpp new/vc-intrinsics-0.16.0/GenXIntrinsics/lib/GenXIntrinsics/GenXSingleElementVectorUtil.cpp --- old/vc-intrinsics-0.14.0/GenXIntrinsics/lib/GenXIntrinsics/GenXSingleElementVectorUtil.cpp 2023-10-25 00:27:31.000000000 +0200 +++ new/vc-intrinsics-0.16.0/GenXIntrinsics/lib/GenXIntrinsics/GenXSingleElementVectorUtil.cpp 2023-12-15 01:16:29.000000000 +0100 @@ -204,7 +204,8 @@ return T; } else if (auto *StructTy = dyn_cast<StructType>(T)) { auto It = SEVRichStructMap.find(StructTy); - assert(It != SEVRichStructMap.end()); + if (It == SEVRichStructMap.end()) + llvm_unreachable("Unexpected SEV StructType"); return It->second; } auto NPtrs = getPointerNesting(T); @@ -613,7 +614,11 @@ NewF.copyAttributesFrom(&F); NewF.takeName(&F); NewF.copyMetadata(&F, 0); +#if VC_INTR_LLVM_VERSION_MAJOR >= 18 + NewF.updateAfterNameChange(); +#else // VC_INTR_LLVM_VERSION_MAJOR >= 18 NewF.recalculateIntrinsicID(); +#endif // VC_INTR_LLVM_VERSION_MAJOR >= 18 F.getParent()->getFunctionList().insert(F.getIterator(), &NewF); #if VC_INTR_LLVM_VERSION_MAJOR > 15 NewF.splice(NewF.begin(), &F); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vc-intrinsics-0.14.0/GenXIntrinsics/unittests/GenXIntrinsics/GenXIntrinsicsTest.cpp new/vc-intrinsics-0.16.0/GenXIntrinsics/unittests/GenXIntrinsics/GenXIntrinsicsTest.cpp --- old/vc-intrinsics-0.14.0/GenXIntrinsics/unittests/GenXIntrinsics/GenXIntrinsicsTest.cpp 2023-10-25 00:27:31.000000000 +0200 +++ new/vc-intrinsics-0.16.0/GenXIntrinsics/unittests/GenXIntrinsics/GenXIntrinsicsTest.cpp 2023-12-15 01:16:29.000000000 +0100 @@ -1,6 +1,6 @@ /*========================== begin_copyright_notice ============================ -Copyright (C) 2019-2021 Intel Corporation +Copyright (C) 2019-2023 Intel Corporation SPDX-License-Identifier: MIT @@ -27,5 +27,19 @@ true); EXPECT_EQ(GenXIntrinsic::isOverloadedArg(GenXIntrinsic::genx_simdcf_any, 0), true); + EXPECT_EQ(GenXIntrinsic::isOverloadedArg(GenXIntrinsic::genx_ssdp4a, 0), true); + EXPECT_EQ(GenXIntrinsic::isOverloadedArg(GenXIntrinsic::genx_ssdp4a, 1), true); + EXPECT_EQ(GenXIntrinsic::isOverloadedArg(GenXIntrinsic::genx_ssdp4a, 2), true); + EXPECT_EQ(GenXIntrinsic::isOverloadedArg(GenXIntrinsic::genx_dpasw_nosrc0, 2), + false); + EXPECT_EQ( + GenXIntrinsic::isOverloadedArg(GenXIntrinsic::genx_lsc_store_slm, 10), + true); + EXPECT_EQ( + GenXIntrinsic::isOverloadedArg(GenXIntrinsic::genx_lsc_store_slm, 11), + true); + EXPECT_EQ( + GenXIntrinsic::isOverloadedArg(GenXIntrinsic::genx_lsc_store_slm, 12), + false); } } // namespace