1 // 2 // Copyright (C) 2009-2021 Intel Corporation 3 // 4 // SPDX-License-Identifier: MIT 5 // 6 // 7 8 // LSC Loads 9 uint load_uchar_to_uint_L1UC_L3UC(global uchar* it, int offset); 10 uint load_uchar_to_uint_L1UC_L3C(global uchar* it, int offset); 11 uint load_uchar_to_uint_L1C_L3UC(global uchar* it, int offset); 12 uint load_uchar_to_uint_L1C_L3C(global uchar* it, int offset); 13 uint load_uchar_to_uint_L1S_L3UC(global uchar* it, int offset); 14 uint load_uchar_to_uint_L1S_L3C(global uchar* it, int offset); 15 uint load_uchar_to_uint_L1IAR_L3C(global uchar* it, int offset); 16 17 uint load_ushort_to_uint_L1UC_L3UC(global ushort* it, int offset); 18 uint load_ushort_to_uint_L1UC_L3C(global ushort* it, int offset); 19 uint load_ushort_to_uint_L1C_L3UC(global ushort* it, int offset); 20 uint load_ushort_to_uint_L1C_L3C(global ushort* it, int offset); 21 uint load_ushort_to_uint_L1S_L3UC(global ushort* it, int offset); 22 uint load_ushort_to_uint_L1S_L3C(global ushort* it, int offset); 23 uint load_ushort_to_uint_L1IAR_L3C(global ushort* it, int offset); 24 25 uint load_uint_L1UC_L3UC(global uint* it, int offset); 26 uint load_uint_L1UC_L3C(global uint* it, int offset); 27 uint load_uint_L1C_L3UC(global uint* it, int offset); 28 uint load_uint_L1C_L3C(global uint* it, int offset); 29 uint load_uint_L1S_L3UC(global uint* it, int offset); 30 uint load_uint_L1S_L3C(global uint* it, int offset); 31 uint load_uint_L1IAR_L3C(global uint* it, int offset); 32 33 uint2 load_uint2_L1UC_L3UC(global uint2* it, int offset); 34 uint2 load_uint2_L1UC_L3C(global uint2* it, int offset); 35 uint2 load_uint2_L1C_L3UC(global uint2* it, int offset); 36 uint2 load_uint2_L1C_L3C(global uint2* it, int offset); 37 uint2 load_uint2_L1S_L3UC(global uint2* it, int offset); 38 uint2 load_uint2_L1S_L3C(global uint2* it, int offset); 39 uint2 load_uint2_L1IAR_L3C(global uint2* it, int offset); 40 41 uint3 load_uint3_L1UC_L3UC(global uint3* it, int offset); 42 uint3 load_uint3_L1UC_L3C(global uint3* it, int offset); 43 uint3 load_uint3_L1C_L3UC(global uint3* it, int offset); 44 uint3 load_uint3_L1C_L3C(global uint3* it, int offset); 45 uint3 load_uint3_L1S_L3UC(global uint3* it, int offset); 46 uint3 load_uint3_L1S_L3C(global uint3* it, int offset); 47 uint3 load_uint3_L1IAR_L3C(global uint3* it, int offset); 48 49 uint4 load_uint4_L1UC_L3UC(global uint4* it, int offset); 50 uint4 load_uint4_L1UC_L3C(global uint4* it, int offset); 51 uint4 load_uint4_L1C_L3UC(global uint4* it, int offset); 52 uint4 load_uint4_L1C_L3C(global uint4* it, int offset); 53 uint4 load_uint4_L1S_L3UC(global uint4* it, int offset); 54 uint4 load_uint4_L1S_L3C(global uint4* it, int offset); 55 uint4 load_uint4_L1IAR_L3C(global uint4* it, int offset); 56 57 uint8 load_uint8_L1UC_L3UC(global uint8* it, int offset); 58 uint8 load_uint8_L1UC_L3C(global uint8* it, int offset); 59 uint8 load_uint8_L1C_L3UC(global uint8* it, int offset); 60 uint8 load_uint8_L1C_L3C(global uint8* it, int offset); 61 uint8 load_uint8_L1S_L3UC(global uint8* it, int offset); 62 uint8 load_uint8_L1S_L3C(global uint8* it, int offset); 63 uint8 load_uint8_L1IAR_L3C(global uint8* it, int offset); 64 65 ulong load_ulong_L1UC_L3UC(global ulong* it, int offset); 66 ulong load_ulong_L1UC_L3C(global ulong* it, int offset); 67 ulong load_ulong_L1C_L3UC(global ulong* it, int offset); 68 ulong load_ulong_L1C_L3C(global ulong* it, int offset); 69 ulong load_ulong_L1S_L3UC(global ulong* it, int offset); 70 ulong load_ulong_L1S_L3C(global ulong* it, int offset); 71 ulong load_ulong_L1IAR_L3C(global ulong* it, int offset); 72 73 ulong2 load_ulong2_L1UC_L3UC(global ulong2* it, int offset); 74 ulong2 load_ulong2_L1UC_L3C(global ulong2* it, int offset); 75 ulong2 load_ulong2_L1C_L3UC(global ulong2* it, int offset); 76 ulong2 load_ulong2_L1C_L3C(global ulong2* it, int offset); 77 ulong2 load_ulong2_L1S_L3UC(global ulong2* it, int offset); 78 ulong2 load_ulong2_L1S_L3C(global ulong2* it, int offset); 79 ulong2 load_ulong2_L1IAR_L3C(global ulong2* it, int offset); 80 81 ulong3 load_ulong3_L1UC_L3UC(global ulong3* it, int offset); 82 ulong3 load_ulong3_L1UC_L3C(global ulong3* it, int offset); 83 ulong3 load_ulong3_L1C_L3UC(global ulong3* it, int offset); 84 ulong3 load_ulong3_L1C_L3C(global ulong3* it, int offset); 85 ulong3 load_ulong3_L1S_L3UC(global ulong3* it, int offset); 86 ulong3 load_ulong3_L1S_L3C(global ulong3* it, int offset); 87 ulong3 load_ulong3_L1IAR_L3C(global ulong3* it, int offset); 88 89 ulong4 load_ulong4_L1UC_L3UC(global ulong4* it, int offset); 90 ulong4 load_ulong4_L1UC_L3C(global ulong4* it, int offset); 91 ulong4 load_ulong4_L1C_L3UC(global ulong4* it, int offset); 92 ulong4 load_ulong4_L1C_L3C(global ulong4* it, int offset); 93 ulong4 load_ulong4_L1S_L3UC(global ulong4* it, int offset); 94 ulong4 load_ulong4_L1S_L3C(global ulong4* it, int offset); 95 ulong4 load_ulong4_L1IAR_L3C(global ulong4* it, int offset); 96 97 ulong8 load_ulong8_L1UC_L3UC(global ulong8* it, int offset); 98 ulong8 load_ulong8_L1UC_L3C(global ulong8* it, int offset); 99 ulong8 load_ulong8_L1C_L3UC(global ulong8* it, int offset); 100 ulong8 load_ulong8_L1C_L3C(global ulong8* it, int offset); 101 ulong8 load_ulong8_L1S_L3UC(global ulong8* it, int offset); 102 ulong8 load_ulong8_L1S_L3C(global ulong8* it, int offset); 103 ulong8 load_ulong8_L1IAR_L3C(global ulong8* it, int offset); 104 105 // LSC Stores 106 void store_uchar_from_uint_L1UC_L3UC(global uchar* it, int offset, uint value); 107 void store_uchar_from_uint_L1UC_L3WB(global uchar* it, int offset, uint value); 108 void store_uchar_from_uint_L1WT_L3UC(global uchar* it, int offset, uint value); 109 void store_uchar_from_uint_L1WT_L3WB(global uchar* it, int offset, uint value); 110 void store_uchar_from_uint_L1S_L3UC(global uchar* it, int offset, uint value); 111 void store_uchar_from_uint_L1S_L3WB(global uchar* it, int offset, uint value); 112 void store_uchar_from_uint_L1WB_L3WB(global uchar* it, int offset, uint value); 113 114 void store_ushort_from_uint_L1UC_L3UC(global ushort* it, int offset, uint value); 115 void store_ushort_from_uint_L1UC_L3WB(global ushort* it, int offset, uint value); 116 void store_ushort_from_uint_L1WT_L3UC(global ushort* it, int offset, uint value); 117 void store_ushort_from_uint_L1WT_L3WB(global ushort* it, int offset, uint value); 118 void store_ushort_from_uint_L1S_L3UC(global ushort* it, int offset, uint value); 119 void store_ushort_from_uint_L1S_L3WB(global ushort* it, int offset, uint value); 120 void store_ushort_from_uint_L1WB_L3WB(global ushort* it, int offset, uint value); 121 122 void store_uint_L1UC_L3UC(global uint* it, int offset, uint value); 123 void store_uint_L1UC_L3WB(global uint* it, int offset, uint value); 124 void store_uint_L1WT_L3UC(global uint* it, int offset, uint value); 125 void store_uint_L1WT_L3WB(global uint* it, int offset, uint value); 126 void store_uint_L1S_L3UC(global uint* it, int offset, uint value); 127 void store_uint_L1S_L3WB(global uint* it, int offset, uint value); 128 void store_uint_L1WB_L3WB(global uint* it, int offset, uint value); 129 130 void store_uint2_L1UC_L3UC(global uint2* it, int offset, uint2 value); 131 void store_uint2_L1UC_L3WB(global uint2* it, int offset, uint2 value); 132 void store_uint2_L1WT_L3UC(global uint2* it, int offset, uint2 value); 133 void store_uint2_L1WT_L3WB(global uint2* it, int offset, uint2 value); 134 void store_uint2_L1S_L3UC(global uint2* it, int offset, uint2 value); 135 void store_uint2_L1S_L3WB(global uint2* it, int offset, uint2 value); 136 void store_uint2_L1WB_L3WB(global uint2* it, int offset, uint2 value); 137 138 void store_uint3_L1UC_L3UC(global uint3* it, int offset, uint3 value); 139 void store_uint3_L1UC_L3WB(global uint3* it, int offset, uint3 value); 140 void store_uint3_L1WT_L3UC(global uint3* it, int offset, uint3 value); 141 void store_uint3_L1WT_L3WB(global uint3* it, int offset, uint3 value); 142 void store_uint3_L1S_L3UC(global uint3* it, int offset, uint3 value); 143 void store_uint3_L1S_L3WB(global uint3* it, int offset, uint3 value); 144 void store_uint3_L1WB_L3WB(global uint3* it, int offset, uint3 value); 145 146 void store_uint4_L1UC_L3UC(global uint4* it, int offset, uint4 value); 147 void store_uint4_L1UC_L3WB(global uint4* it, int offset, uint4 value); 148 void store_uint4_L1WT_L3UC(global uint4* it, int offset, uint4 value); 149 void store_uint4_L1WT_L3WB(global uint4* it, int offset, uint4 value); 150 void store_uint4_L1S_L3UC(global uint4* it, int offset, uint4 value); 151 void store_uint4_L1S_L3WB(global uint4* it, int offset, uint4 value); 152 void store_uint4_L1WB_L3WB(global uint4* it, int offset, uint4 value); 153 154 void store_uint8_L1UC_L3UC(global uint8* it, int offset, uint8 value); 155 void store_uint8_L1UC_L3WB(global uint8* it, int offset, uint8 value); 156 void store_uint8_L1WT_L3UC(global uint8* it, int offset, uint8 value); 157 void store_uint8_L1WT_L3WB(global uint8* it, int offset, uint8 value); 158 void store_uint8_L1S_L3UC(global uint8* it, int offset, uint8 value); 159 void store_uint8_L1S_L3WB(global uint8* it, int offset, uint8 value); 160 void store_uint8_L1WB_L3WB(global uint8* it, int offset, uint8 value); 161 162 void store_ulong_L1UC_L3UC(global ulong* it, int offset, ulong value); 163 void store_ulong_L1UC_L3WB(global ulong* it, int offset, ulong value); 164 void store_ulong_L1WT_L3UC(global ulong* it, int offset, ulong value); 165 void store_ulong_L1WT_L3WB(global ulong* it, int offset, ulong value); 166 void store_ulong_L1S_L3UC(global ulong* it, int offset, ulong value); 167 void store_ulong_L1S_L3WB(global ulong* it, int offset, ulong value); 168 void store_ulong_L1WB_L3WB(global ulong* it, int offset, ulong value); 169 170 void store_ulong2_L1UC_L3UC(global ulong2* it, int offset, ulong2 value); 171 void store_ulong2_L1UC_L3WB(global ulong2* it, int offset, ulong2 value); 172 void store_ulong2_L1WT_L3UC(global ulong2* it, int offset, ulong2 value); 173 void store_ulong2_L1WT_L3WB(global ulong2* it, int offset, ulong2 value); 174 void store_ulong2_L1S_L3UC(global ulong2* it, int offset, ulong2 value); 175 void store_ulong2_L1S_L3WB(global ulong2* it, int offset, ulong2 value); 176 void store_ulong2_L1WB_L3WB(global ulong2* it, int offset, ulong2 value); 177 178 void store_ulong3_L1UC_L3UC(global ulong3* it, int offset, ulong3 value); 179 void store_ulong3_L1UC_L3WB(global ulong3* it, int offset, ulong3 value); 180 void store_ulong3_L1WT_L3UC(global ulong3* it, int offset, ulong3 value); 181 void store_ulong3_L1WT_L3WB(global ulong3* it, int offset, ulong3 value); 182 void store_ulong3_L1S_L3UC(global ulong3* it, int offset, ulong3 value); 183 void store_ulong3_L1S_L3WB(global ulong3* it, int offset, ulong3 value); 184 void store_ulong3_L1WB_L3WB(global ulong3* it, int offset, ulong3 value); 185 186 void store_ulong4_L1UC_L3UC(global ulong4* it, int offset, ulong4 value); 187 void store_ulong4_L1UC_L3WB(global ulong4* it, int offset, ulong4 value); 188 void store_ulong4_L1WT_L3UC(global ulong4* it, int offset, ulong4 value); 189 void store_ulong4_L1WT_L3WB(global ulong4* it, int offset, ulong4 value); 190 void store_ulong4_L1S_L3UC(global ulong4* it, int offset, ulong4 value); 191 void store_ulong4_L1S_L3WB(global ulong4* it, int offset, ulong4 value); 192 void store_ulong4_L1WB_L3WB(global ulong4* it, int offset, ulong4 value); 193 194 void store_ulong8_L1UC_L3UC(global ulong8* it, int offset, ulong8 value); 195 void store_ulong8_L1UC_L3WB(global ulong8* it, int offset, ulong8 value); 196 void store_ulong8_L1WT_L3UC(global ulong8* it, int offset, ulong8 value); 197 void store_ulong8_L1WT_L3WB(global ulong8* it, int offset, ulong8 value); 198 void store_ulong8_L1S_L3UC(global ulong8* it, int offset, ulong8 value); 199 void store_ulong8_L1S_L3WB(global ulong8* it, int offset, ulong8 value); 200 void store_ulong8_L1WB_L3WB(global ulong8* it, int offset, ulong8 value); 201 202 // LSC Fence support 203 void mem_fence_gpu_default(); 204 void mem_fence_workgroup_default(); 205 void mem_fence_gpu_invalidate(); 206 void mem_fence_gpu_evict(); 207 void mem_fence_evict_to_memory(); 208