[llvm] r327720 - [AMDGPU][MC] Corrected default values for unused SDWA operands

Dmitry Preobrazhensky via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 16 08:40:27 PDT 2018


Author: dpreobra
Date: Fri Mar 16 08:40:27 2018
New Revision: 327720

URL: http://llvm.org/viewvc/llvm-project?rev=327720&view=rev
Log:
[AMDGPU][MC] Corrected default values for unused SDWA operands

See bug 36355:  https://bugs.llvm.org/show_bug.cgi?id=36355

Differential Revision: https://reviews.llvm.org/D44481

Reviewers: artem.tamazov, arsenm

Modified:
    llvm/trunk/lib/Target/AMDGPU/VOPCInstructions.td
    llvm/trunk/lib/Target/AMDGPU/VOPInstructions.td
    llvm/trunk/test/MC/AMDGPU/gfx7_asm_all.s
    llvm/trunk/test/MC/AMDGPU/gfx8_asm_all.s
    llvm/trunk/test/MC/AMDGPU/gfx9_asm_all.s
    llvm/trunk/test/MC/AMDGPU/vop_sdwa.s
    llvm/trunk/test/MC/Disassembler/AMDGPU/gfx8_dasm_all.txt
    llvm/trunk/test/MC/Disassembler/AMDGPU/gfx9_dasm_all.txt
    llvm/trunk/test/MC/Disassembler/AMDGPU/sdwa_gfx9.txt
    llvm/trunk/test/MC/Disassembler/AMDGPU/sdwa_vi.txt

Modified: llvm/trunk/lib/Target/AMDGPU/VOPCInstructions.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/VOPCInstructions.td?rev=327720&r1=327719&r2=327720&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/VOPCInstructions.td (original)
+++ llvm/trunk/lib/Target/AMDGPU/VOPCInstructions.td Fri Mar 16 08:40:27 2018
@@ -30,8 +30,8 @@ class VOPC_SDWAe <bits<8> op, VOPProfile
   let Inst{31-25} = 0x3e; // encoding
 
   // VOPC disallows dst_sel and dst_unused as they have no effect on destination
-  let Inst{42-40} = SDWA.DWORD;
-  let Inst{44-43} = SDWA.UNUSED_PRESERVE;
+  let Inst{42-40} = 0;
+  let Inst{44-43} = 0;
 }
 
 class VOPC_SDWA9e <bits<8> op, VOPProfile P> : VOP_SDWA9Be <P> {

Modified: llvm/trunk/lib/Target/AMDGPU/VOPInstructions.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/VOPInstructions.td?rev=327720&r1=327719&r2=327720&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/VOPInstructions.td (original)
+++ llvm/trunk/lib/Target/AMDGPU/VOPInstructions.td Fri Mar 16 08:40:27 2018
@@ -325,13 +325,13 @@ class VOP_SDWAe<VOPProfile P> : Enc64 {
   bits<1> clamp;
 
   let Inst{39-32} = !if(P.HasSrc0, src0{7-0}, 0);
-  let Inst{42-40} = !if(P.EmitDst, dst_sel{2-0}, SDWA.DWORD);
-  let Inst{44-43} = !if(P.EmitDst, dst_unused{1-0}, SDWA.UNUSED_PRESERVE);
+  let Inst{42-40} = !if(P.EmitDst, dst_sel{2-0}, 0);
+  let Inst{44-43} = !if(P.EmitDst, dst_unused{1-0}, 0);
   let Inst{45}    = !if(P.HasSDWAClamp, clamp{0}, 0);
-  let Inst{50-48} = !if(P.HasSrc0, src0_sel{2-0}, SDWA.DWORD);
+  let Inst{50-48} = !if(P.HasSrc0, src0_sel{2-0}, 0);
   let Inst{51}    = !if(P.HasSrc0IntMods, src0_modifiers{0}, 0);
   let Inst{53-52} = !if(P.HasSrc0FloatMods, src0_modifiers{1-0}, 0);
-  let Inst{58-56} = !if(P.HasSrc1, src1_sel{2-0}, SDWA.DWORD);
+  let Inst{58-56} = !if(P.HasSrc1, src1_sel{2-0}, 0);
   let Inst{59}    = !if(P.HasSrc1IntMods, src1_modifiers{0}, 0);
   let Inst{61-60} = !if(P.HasSrc1FloatMods, src1_modifiers{1-0}, 0);
 }
@@ -359,11 +359,11 @@ class VOP_SDWA9e<VOPProfile P> : Enc64 {
   bits<1> src1_sgpr;
 
   let Inst{39-32} = !if(P.HasSrc0, src0{7-0}, 0);
-  let Inst{50-48} = !if(P.HasSrc0, src0_sel{2-0}, SDWA.DWORD);
+  let Inst{50-48} = !if(P.HasSrc0, src0_sel{2-0}, 0);
   let Inst{51}    = !if(P.HasSrc0IntMods, src0_modifiers{0}, 0);
   let Inst{53-52} = !if(P.HasSrc0FloatMods, src0_modifiers{1-0}, 0);
   let Inst{55}    = !if(P.HasSrc0, src0{8}, 0);
-  let Inst{58-56} = !if(P.HasSrc1, src1_sel{2-0}, SDWA.DWORD);
+  let Inst{58-56} = !if(P.HasSrc1, src1_sel{2-0}, 0);
   let Inst{59}    = !if(P.HasSrc1IntMods, src1_modifiers{0}, 0);
   let Inst{61-60} = !if(P.HasSrc1FloatMods, src1_modifiers{1-0}, 0);
   let Inst{63}    = 0; // src1_sgpr - should be specified in subclass
@@ -376,8 +376,8 @@ class VOP_SDWA9Ae<VOPProfile P> : VOP_SD
   bits<1> clamp;
   bits<2> omod;
 
-  let Inst{42-40} = !if(P.EmitDst, dst_sel{2-0}, SDWA.DWORD);
-  let Inst{44-43} = !if(P.EmitDst, dst_unused{1-0}, SDWA.UNUSED_PRESERVE);
+  let Inst{42-40} = !if(P.EmitDst, dst_sel{2-0}, 0);
+  let Inst{44-43} = !if(P.EmitDst, dst_unused{1-0}, 0);
   let Inst{45}    = !if(P.HasSDWAClamp, clamp{0}, 0);
   let Inst{47-46} = !if(P.HasSDWAOMod, omod{1-0}, 0);
 }

Modified: llvm/trunk/test/MC/AMDGPU/gfx7_asm_all.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AMDGPU/gfx7_asm_all.s?rev=327720&r1=327719&r2=327720&view=diff
==============================================================================
--- llvm/trunk/test/MC/AMDGPU/gfx7_asm_all.s (original)
+++ llvm/trunk/test/MC/AMDGPU/gfx7_asm_all.s Fri Mar 16 08:40:27 2018
@@ -3840,6 +3840,9 @@ image_load v5, v[1:4], s[12:19] dmask:0x
 image_load v5, v[1:4], s[96:103] dmask:0x1
 // CHECK: [0x00,0x01,0x00,0xf0,0x01,0x05,0x18,0x00]
 
+image_load v5, v[1:4], ttmp[4:11] dmask:0x1
+// CHECK: [0x00,0x01,0x00,0xf0,0x01,0x05,0x1d,0x00]
+
 image_load v5, v[1:4], s[8:15] dmask:0x2
 // CHECK: [0x00,0x02,0x00,0xf0,0x01,0x05,0x02,0x00]
 
@@ -3879,15 +3882,27 @@ image_load v[5:7], v[1:4], s[8:15] dmask
 image_load v[5:7], v[1:4], s[8:15] dmask:0xe
 // CHECK: [0x00,0x0e,0x00,0xf0,0x01,0x05,0x02,0x00]
 
-image_load v[5:8], v[1:4], s[8:15] dmask:0xf
-// CHECK: [0x00,0x0f,0x00,0xf0,0x01,0x05,0x02,0x00]
-
 image_load v5, v[1:4], s[8:15] dmask:0x0
 // CHECK: [0x00,0x00,0x00,0xf0,0x01,0x05,0x02,0x00]
 
 image_load v5, v[1:4], s[8:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x00,0xf0,0x01,0x05,0x02,0x00]
 
+image_load v5, v[1:4], s[8:15] dmask:0x1 glc
+// CHECK: [0x00,0x21,0x00,0xf0,0x01,0x05,0x02,0x00]
+
+image_load v5, v[1:4], s[8:15] dmask:0x1 slc
+// CHECK: [0x00,0x01,0x00,0xf2,0x01,0x05,0x02,0x00]
+
+image_load v[5:6], v[1:4], s[8:15] dmask:0x1 tfe
+// CHECK: [0x00,0x01,0x01,0xf0,0x01,0x05,0x02,0x00]
+
+image_load v5, v[1:4], s[8:15] dmask:0x1 lwe
+// CHECK: [0x00,0x01,0x02,0xf0,0x01,0x05,0x02,0x00]
+
+image_load v5, v[1:4], s[8:15] dmask:0x1 da
+// CHECK: [0x00,0x41,0x00,0xf0,0x01,0x05,0x02,0x00]
+
 image_load_mip v5, v[1:4], s[8:15] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf0,0x01,0x05,0x02,0x00]
 
@@ -3903,6 +3918,9 @@ image_load_mip v5, v[1:4], s[12:19] dmas
 image_load_mip v5, v[1:4], s[96:103] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf0,0x01,0x05,0x18,0x00]
 
+image_load_mip v5, v[1:4], ttmp[4:11] dmask:0x1
+// CHECK: [0x00,0x01,0x04,0xf0,0x01,0x05,0x1d,0x00]
+
 image_load_mip v5, v[1:4], s[8:15] dmask:0x2
 // CHECK: [0x00,0x02,0x04,0xf0,0x01,0x05,0x02,0x00]
 
@@ -3942,15 +3960,27 @@ image_load_mip v[5:7], v[1:4], s[8:15] d
 image_load_mip v[5:7], v[1:4], s[8:15] dmask:0xe
 // CHECK: [0x00,0x0e,0x04,0xf0,0x01,0x05,0x02,0x00]
 
-image_load_mip v[5:8], v[1:4], s[8:15] dmask:0xf
-// CHECK: [0x00,0x0f,0x04,0xf0,0x01,0x05,0x02,0x00]
-
 image_load_mip v5, v[1:4], s[8:15] dmask:0x0
 // CHECK: [0x00,0x00,0x04,0xf0,0x01,0x05,0x02,0x00]
 
 image_load_mip v5, v[1:4], s[8:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x04,0xf0,0x01,0x05,0x02,0x00]
 
+image_load_mip v5, v[1:4], s[8:15] dmask:0x1 glc
+// CHECK: [0x00,0x21,0x04,0xf0,0x01,0x05,0x02,0x00]
+
+image_load_mip v5, v[1:4], s[8:15] dmask:0x1 slc
+// CHECK: [0x00,0x01,0x04,0xf2,0x01,0x05,0x02,0x00]
+
+image_load_mip v[5:6], v[1:4], s[8:15] dmask:0x1 tfe
+// CHECK: [0x00,0x01,0x05,0xf0,0x01,0x05,0x02,0x00]
+
+image_load_mip v5, v[1:4], s[8:15] dmask:0x1 lwe
+// CHECK: [0x00,0x01,0x06,0xf0,0x01,0x05,0x02,0x00]
+
+image_load_mip v5, v[1:4], s[8:15] dmask:0x1 da
+// CHECK: [0x00,0x41,0x04,0xf0,0x01,0x05,0x02,0x00]
+
 image_store v1, v[2:5], s[12:19] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x20,0xf0,0x02,0x01,0x03,0x00]
 
@@ -3966,6 +3996,9 @@ image_store v1, v[2:5], s[16:23] dmask:0
 image_store v1, v[2:5], s[96:103] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x20,0xf0,0x02,0x01,0x18,0x00]
 
+image_store v1, v[2:5], ttmp[4:11] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x20,0xf0,0x02,0x01,0x1d,0x00]
+
 image_store v1, v[2:5], s[12:19] dmask:0x2 unorm
 // CHECK: [0x00,0x12,0x20,0xf0,0x02,0x01,0x03,0x00]
 
@@ -4014,6 +4047,15 @@ image_store v1, v[2:5], s[12:19] dmask:0
 image_store v1, v[2:5], s[12:19] dmask:0x1 unorm glc
 // CHECK: [0x00,0x31,0x20,0xf0,0x02,0x01,0x03,0x00]
 
+image_store v1, v[2:5], s[12:19] dmask:0x1 unorm slc
+// CHECK: [0x00,0x11,0x20,0xf2,0x02,0x01,0x03,0x00]
+
+image_store v1, v[2:5], s[12:19] dmask:0x1 unorm lwe
+// CHECK: [0x00,0x11,0x22,0xf0,0x02,0x01,0x03,0x00]
+
+image_store v1, v[2:5], s[12:19] dmask:0x1 unorm da
+// CHECK: [0x00,0x51,0x20,0xf0,0x02,0x01,0x03,0x00]
+
 image_store_mip v1, v[2:5], s[12:19] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x24,0xf0,0x02,0x01,0x03,0x00]
 
@@ -4029,6 +4071,9 @@ image_store_mip v1, v[2:5], s[16:23] dma
 image_store_mip v1, v[2:5], s[96:103] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x24,0xf0,0x02,0x01,0x18,0x00]
 
+image_store_mip v1, v[2:5], ttmp[4:11] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x24,0xf0,0x02,0x01,0x1d,0x00]
+
 image_store_mip v1, v[2:5], s[12:19] dmask:0x2 unorm
 // CHECK: [0x00,0x12,0x24,0xf0,0x02,0x01,0x03,0x00]
 
@@ -4077,6 +4122,15 @@ image_store_mip v1, v[2:5], s[12:19] dma
 image_store_mip v1, v[2:5], s[12:19] dmask:0x1 unorm glc
 // CHECK: [0x00,0x31,0x24,0xf0,0x02,0x01,0x03,0x00]
 
+image_store_mip v1, v[2:5], s[12:19] dmask:0x1 unorm slc
+// CHECK: [0x00,0x11,0x24,0xf2,0x02,0x01,0x03,0x00]
+
+image_store_mip v1, v[2:5], s[12:19] dmask:0x1 unorm lwe
+// CHECK: [0x00,0x11,0x26,0xf0,0x02,0x01,0x03,0x00]
+
+image_store_mip v1, v[2:5], s[12:19] dmask:0x1 unorm da
+// CHECK: [0x00,0x51,0x24,0xf0,0x02,0x01,0x03,0x00]
+
 image_get_resinfo v5, v[1:4], s[8:15] dmask:0x1
 // CHECK: [0x00,0x01,0x38,0xf0,0x01,0x05,0x02,0x00]
 
@@ -4092,6 +4146,9 @@ image_get_resinfo v5, v[1:4], s[12:19] d
 image_get_resinfo v5, v[1:4], s[96:103] dmask:0x1
 // CHECK: [0x00,0x01,0x38,0xf0,0x01,0x05,0x18,0x00]
 
+image_get_resinfo v5, v[1:4], ttmp[4:11] dmask:0x1
+// CHECK: [0x00,0x01,0x38,0xf0,0x01,0x05,0x1d,0x00]
+
 image_get_resinfo v5, v[1:4], s[8:15] dmask:0x2
 // CHECK: [0x00,0x02,0x38,0xf0,0x01,0x05,0x02,0x00]
 
@@ -4131,15 +4188,456 @@ image_get_resinfo v[5:7], v[1:4], s[8:15
 image_get_resinfo v[5:7], v[1:4], s[8:15] dmask:0xe
 // CHECK: [0x00,0x0e,0x38,0xf0,0x01,0x05,0x02,0x00]
 
-image_get_resinfo v[5:8], v[1:4], s[8:15] dmask:0xf
-// CHECK: [0x00,0x0f,0x38,0xf0,0x01,0x05,0x02,0x00]
-
 image_get_resinfo v5, v[1:4], s[8:15] dmask:0x0
 // CHECK: [0x00,0x00,0x38,0xf0,0x01,0x05,0x02,0x00]
 
 image_get_resinfo v5, v[1:4], s[8:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x38,0xf0,0x01,0x05,0x02,0x00]
 
+image_get_resinfo v5, v[1:4], s[8:15] dmask:0x1 glc
+// CHECK: [0x00,0x21,0x38,0xf0,0x01,0x05,0x02,0x00]
+
+image_get_resinfo v5, v[1:4], s[8:15] dmask:0x1 slc
+// CHECK: [0x00,0x01,0x38,0xf2,0x01,0x05,0x02,0x00]
+
+image_get_resinfo v[5:6], v[1:4], s[8:15] dmask:0x1 tfe
+// CHECK: [0x00,0x01,0x39,0xf0,0x01,0x05,0x02,0x00]
+
+image_get_resinfo v5, v[1:4], s[8:15] dmask:0x1 lwe
+// CHECK: [0x00,0x01,0x3a,0xf0,0x01,0x05,0x02,0x00]
+
+image_get_resinfo v5, v[1:4], s[8:15] dmask:0x1 da
+// CHECK: [0x00,0x41,0x38,0xf0,0x01,0x05,0x02,0x00]
+
+image_atomic_swap v1, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x3c,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_swap v252, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x3c,0xf0,0x02,0xfc,0x03,0x00]
+
+image_atomic_swap v1, v255, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x3c,0xf0,0xff,0x01,0x03,0x00]
+
+image_atomic_swap v1, v2, s[16:23] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x3c,0xf0,0x02,0x01,0x04,0x00]
+
+image_atomic_swap v1, v2, s[96:103] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x3c,0xf0,0x02,0x01,0x18,0x00]
+
+image_atomic_swap v1, v2, ttmp[4:11] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x3c,0xf0,0x02,0x01,0x1d,0x00]
+
+image_atomic_swap v[1:2], v2, s[12:19] dmask:0x3 unorm
+// CHECK: [0x00,0x13,0x3c,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_swap v1, v2, s[12:19] dmask:0x1 unorm glc
+// CHECK: [0x00,0x31,0x3c,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_swap v1, v2, s[12:19] dmask:0x1 unorm slc
+// CHECK: [0x00,0x11,0x3c,0xf2,0x02,0x01,0x03,0x00]
+
+image_atomic_swap v1, v2, s[12:19] dmask:0x1 unorm lwe
+// CHECK: [0x00,0x11,0x3e,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_swap v1, v2, s[12:19] dmask:0x1 unorm da
+// CHECK: [0x00,0x51,0x3c,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_cmpswap v[1:2], v2, s[12:19] dmask:0x3 unorm
+// CHECK: [0x00,0x13,0x40,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_cmpswap v[252:253], v2, s[12:19] dmask:0x3 unorm
+// CHECK: [0x00,0x13,0x40,0xf0,0x02,0xfc,0x03,0x00]
+
+image_atomic_cmpswap v[1:2], v255, s[12:19] dmask:0x3 unorm
+// CHECK: [0x00,0x13,0x40,0xf0,0xff,0x01,0x03,0x00]
+
+image_atomic_cmpswap v[1:2], v2, s[16:23] dmask:0x3 unorm
+// CHECK: [0x00,0x13,0x40,0xf0,0x02,0x01,0x04,0x00]
+
+image_atomic_cmpswap v[1:2], v2, s[96:103] dmask:0x3 unorm
+// CHECK: [0x00,0x13,0x40,0xf0,0x02,0x01,0x18,0x00]
+
+image_atomic_cmpswap v[1:2], v2, ttmp[4:11] dmask:0x3 unorm
+// CHECK: [0x00,0x13,0x40,0xf0,0x02,0x01,0x1d,0x00]
+
+image_atomic_cmpswap v[1:4], v2, s[12:19] dmask:0xf unorm
+// CHECK: [0x00,0x1f,0x40,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_cmpswap v[1:2], v2, s[12:19] dmask:0x3 unorm glc
+// CHECK: [0x00,0x33,0x40,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_cmpswap v[1:2], v2, s[12:19] dmask:0x3 unorm slc
+// CHECK: [0x00,0x13,0x40,0xf2,0x02,0x01,0x03,0x00]
+
+image_atomic_cmpswap v[1:2], v2, s[12:19] dmask:0x3 unorm lwe
+// CHECK: [0x00,0x13,0x42,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_cmpswap v[1:2], v2, s[12:19] dmask:0x3 unorm da
+// CHECK: [0x00,0x53,0x40,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_add v1, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x44,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_add v252, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x44,0xf0,0x02,0xfc,0x03,0x00]
+
+image_atomic_add v1, v255, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x44,0xf0,0xff,0x01,0x03,0x00]
+
+image_atomic_add v1, v2, s[16:23] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x44,0xf0,0x02,0x01,0x04,0x00]
+
+image_atomic_add v1, v2, s[96:103] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x44,0xf0,0x02,0x01,0x18,0x00]
+
+image_atomic_add v1, v2, ttmp[4:11] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x44,0xf0,0x02,0x01,0x1d,0x00]
+
+image_atomic_add v[1:2], v2, s[12:19] dmask:0x3 unorm
+// CHECK: [0x00,0x13,0x44,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_add v1, v2, s[12:19] dmask:0x1 unorm glc
+// CHECK: [0x00,0x31,0x44,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_add v1, v2, s[12:19] dmask:0x1 unorm slc
+// CHECK: [0x00,0x11,0x44,0xf2,0x02,0x01,0x03,0x00]
+
+image_atomic_add v1, v2, s[12:19] dmask:0x1 unorm lwe
+// CHECK: [0x00,0x11,0x46,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_add v1, v2, s[12:19] dmask:0x1 unorm da
+// CHECK: [0x00,0x51,0x44,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_sub v1, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x48,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_sub v252, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x48,0xf0,0x02,0xfc,0x03,0x00]
+
+image_atomic_sub v1, v255, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x48,0xf0,0xff,0x01,0x03,0x00]
+
+image_atomic_sub v1, v2, s[16:23] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x48,0xf0,0x02,0x01,0x04,0x00]
+
+image_atomic_sub v1, v2, s[96:103] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x48,0xf0,0x02,0x01,0x18,0x00]
+
+image_atomic_sub v1, v2, ttmp[4:11] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x48,0xf0,0x02,0x01,0x1d,0x00]
+
+image_atomic_sub v[1:2], v2, s[12:19] dmask:0x3 unorm
+// CHECK: [0x00,0x13,0x48,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_sub v1, v2, s[12:19] dmask:0x1 unorm glc
+// CHECK: [0x00,0x31,0x48,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_sub v1, v2, s[12:19] dmask:0x1 unorm slc
+// CHECK: [0x00,0x11,0x48,0xf2,0x02,0x01,0x03,0x00]
+
+image_atomic_sub v1, v2, s[12:19] dmask:0x1 unorm lwe
+// CHECK: [0x00,0x11,0x4a,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_sub v1, v2, s[12:19] dmask:0x1 unorm da
+// CHECK: [0x00,0x51,0x48,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_smin v1, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x50,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_smin v252, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x50,0xf0,0x02,0xfc,0x03,0x00]
+
+image_atomic_smin v1, v255, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x50,0xf0,0xff,0x01,0x03,0x00]
+
+image_atomic_smin v1, v2, s[16:23] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x50,0xf0,0x02,0x01,0x04,0x00]
+
+image_atomic_smin v1, v2, s[96:103] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x50,0xf0,0x02,0x01,0x18,0x00]
+
+image_atomic_smin v1, v2, ttmp[4:11] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x50,0xf0,0x02,0x01,0x1d,0x00]
+
+image_atomic_smin v[1:2], v2, s[12:19] dmask:0x3 unorm
+// CHECK: [0x00,0x13,0x50,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_smin v1, v2, s[12:19] dmask:0x1 unorm glc
+// CHECK: [0x00,0x31,0x50,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_smin v1, v2, s[12:19] dmask:0x1 unorm slc
+// CHECK: [0x00,0x11,0x50,0xf2,0x02,0x01,0x03,0x00]
+
+image_atomic_smin v1, v2, s[12:19] dmask:0x1 unorm lwe
+// CHECK: [0x00,0x11,0x52,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_smin v1, v2, s[12:19] dmask:0x1 unorm da
+// CHECK: [0x00,0x51,0x50,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_umin v1, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x54,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_umin v252, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x54,0xf0,0x02,0xfc,0x03,0x00]
+
+image_atomic_umin v1, v255, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x54,0xf0,0xff,0x01,0x03,0x00]
+
+image_atomic_umin v1, v2, s[16:23] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x54,0xf0,0x02,0x01,0x04,0x00]
+
+image_atomic_umin v1, v2, s[96:103] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x54,0xf0,0x02,0x01,0x18,0x00]
+
+image_atomic_umin v1, v2, ttmp[4:11] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x54,0xf0,0x02,0x01,0x1d,0x00]
+
+image_atomic_umin v[1:2], v2, s[12:19] dmask:0x3 unorm
+// CHECK: [0x00,0x13,0x54,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_umin v1, v2, s[12:19] dmask:0x1 unorm glc
+// CHECK: [0x00,0x31,0x54,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_umin v1, v2, s[12:19] dmask:0x1 unorm slc
+// CHECK: [0x00,0x11,0x54,0xf2,0x02,0x01,0x03,0x00]
+
+image_atomic_umin v1, v2, s[12:19] dmask:0x1 unorm lwe
+// CHECK: [0x00,0x11,0x56,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_umin v1, v2, s[12:19] dmask:0x1 unorm da
+// CHECK: [0x00,0x51,0x54,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_smax v1, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x58,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_smax v252, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x58,0xf0,0x02,0xfc,0x03,0x00]
+
+image_atomic_smax v1, v255, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x58,0xf0,0xff,0x01,0x03,0x00]
+
+image_atomic_smax v1, v2, s[16:23] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x58,0xf0,0x02,0x01,0x04,0x00]
+
+image_atomic_smax v1, v2, s[96:103] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x58,0xf0,0x02,0x01,0x18,0x00]
+
+image_atomic_smax v1, v2, ttmp[4:11] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x58,0xf0,0x02,0x01,0x1d,0x00]
+
+image_atomic_smax v[1:2], v2, s[12:19] dmask:0x3 unorm
+// CHECK: [0x00,0x13,0x58,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_smax v1, v2, s[12:19] dmask:0x1 unorm glc
+// CHECK: [0x00,0x31,0x58,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_smax v1, v2, s[12:19] dmask:0x1 unorm slc
+// CHECK: [0x00,0x11,0x58,0xf2,0x02,0x01,0x03,0x00]
+
+image_atomic_smax v1, v2, s[12:19] dmask:0x1 unorm lwe
+// CHECK: [0x00,0x11,0x5a,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_smax v1, v2, s[12:19] dmask:0x1 unorm da
+// CHECK: [0x00,0x51,0x58,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_umax v1, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x5c,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_umax v252, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x5c,0xf0,0x02,0xfc,0x03,0x00]
+
+image_atomic_umax v1, v255, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x5c,0xf0,0xff,0x01,0x03,0x00]
+
+image_atomic_umax v1, v2, s[16:23] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x5c,0xf0,0x02,0x01,0x04,0x00]
+
+image_atomic_umax v1, v2, s[96:103] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x5c,0xf0,0x02,0x01,0x18,0x00]
+
+image_atomic_umax v1, v2, ttmp[4:11] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x5c,0xf0,0x02,0x01,0x1d,0x00]
+
+image_atomic_umax v[1:2], v2, s[12:19] dmask:0x3 unorm
+// CHECK: [0x00,0x13,0x5c,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_umax v1, v2, s[12:19] dmask:0x1 unorm glc
+// CHECK: [0x00,0x31,0x5c,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_umax v1, v2, s[12:19] dmask:0x1 unorm slc
+// CHECK: [0x00,0x11,0x5c,0xf2,0x02,0x01,0x03,0x00]
+
+image_atomic_umax v1, v2, s[12:19] dmask:0x1 unorm lwe
+// CHECK: [0x00,0x11,0x5e,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_umax v1, v2, s[12:19] dmask:0x1 unorm da
+// CHECK: [0x00,0x51,0x5c,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_and v1, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x60,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_and v252, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x60,0xf0,0x02,0xfc,0x03,0x00]
+
+image_atomic_and v1, v255, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x60,0xf0,0xff,0x01,0x03,0x00]
+
+image_atomic_and v1, v2, s[16:23] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x60,0xf0,0x02,0x01,0x04,0x00]
+
+image_atomic_and v1, v2, s[96:103] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x60,0xf0,0x02,0x01,0x18,0x00]
+
+image_atomic_and v1, v2, ttmp[4:11] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x60,0xf0,0x02,0x01,0x1d,0x00]
+
+image_atomic_and v[1:2], v2, s[12:19] dmask:0x3 unorm
+// CHECK: [0x00,0x13,0x60,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_and v1, v2, s[12:19] dmask:0x1 unorm glc
+// CHECK: [0x00,0x31,0x60,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_and v1, v2, s[12:19] dmask:0x1 unorm slc
+// CHECK: [0x00,0x11,0x60,0xf2,0x02,0x01,0x03,0x00]
+
+image_atomic_and v1, v2, s[12:19] dmask:0x1 unorm lwe
+// CHECK: [0x00,0x11,0x62,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_and v1, v2, s[12:19] dmask:0x1 unorm da
+// CHECK: [0x00,0x51,0x60,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_or v1, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x64,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_or v252, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x64,0xf0,0x02,0xfc,0x03,0x00]
+
+image_atomic_or v1, v255, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x64,0xf0,0xff,0x01,0x03,0x00]
+
+image_atomic_or v1, v2, s[16:23] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x64,0xf0,0x02,0x01,0x04,0x00]
+
+image_atomic_or v1, v2, s[96:103] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x64,0xf0,0x02,0x01,0x18,0x00]
+
+image_atomic_or v1, v2, ttmp[4:11] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x64,0xf0,0x02,0x01,0x1d,0x00]
+
+image_atomic_or v[1:2], v2, s[12:19] dmask:0x3 unorm
+// CHECK: [0x00,0x13,0x64,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_or v1, v2, s[12:19] dmask:0x1 unorm glc
+// CHECK: [0x00,0x31,0x64,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_or v1, v2, s[12:19] dmask:0x1 unorm slc
+// CHECK: [0x00,0x11,0x64,0xf2,0x02,0x01,0x03,0x00]
+
+image_atomic_or v1, v2, s[12:19] dmask:0x1 unorm lwe
+// CHECK: [0x00,0x11,0x66,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_or v1, v2, s[12:19] dmask:0x1 unorm da
+// CHECK: [0x00,0x51,0x64,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_xor v1, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x68,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_xor v252, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x68,0xf0,0x02,0xfc,0x03,0x00]
+
+image_atomic_xor v1, v255, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x68,0xf0,0xff,0x01,0x03,0x00]
+
+image_atomic_xor v1, v2, s[16:23] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x68,0xf0,0x02,0x01,0x04,0x00]
+
+image_atomic_xor v1, v2, s[96:103] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x68,0xf0,0x02,0x01,0x18,0x00]
+
+image_atomic_xor v1, v2, ttmp[4:11] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x68,0xf0,0x02,0x01,0x1d,0x00]
+
+image_atomic_xor v[1:2], v2, s[12:19] dmask:0x3 unorm
+// CHECK: [0x00,0x13,0x68,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_xor v1, v2, s[12:19] dmask:0x1 unorm glc
+// CHECK: [0x00,0x31,0x68,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_xor v1, v2, s[12:19] dmask:0x1 unorm slc
+// CHECK: [0x00,0x11,0x68,0xf2,0x02,0x01,0x03,0x00]
+
+image_atomic_xor v1, v2, s[12:19] dmask:0x1 unorm lwe
+// CHECK: [0x00,0x11,0x6a,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_xor v1, v2, s[12:19] dmask:0x1 unorm da
+// CHECK: [0x00,0x51,0x68,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_inc v1, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x6c,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_inc v252, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x6c,0xf0,0x02,0xfc,0x03,0x00]
+
+image_atomic_inc v1, v255, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x6c,0xf0,0xff,0x01,0x03,0x00]
+
+image_atomic_inc v1, v2, s[16:23] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x6c,0xf0,0x02,0x01,0x04,0x00]
+
+image_atomic_inc v1, v2, s[96:103] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x6c,0xf0,0x02,0x01,0x18,0x00]
+
+image_atomic_inc v1, v2, ttmp[4:11] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x6c,0xf0,0x02,0x01,0x1d,0x00]
+
+image_atomic_inc v[1:2], v2, s[12:19] dmask:0x3 unorm
+// CHECK: [0x00,0x13,0x6c,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_inc v1, v2, s[12:19] dmask:0x1 unorm glc
+// CHECK: [0x00,0x31,0x6c,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_inc v1, v2, s[12:19] dmask:0x1 unorm slc
+// CHECK: [0x00,0x11,0x6c,0xf2,0x02,0x01,0x03,0x00]
+
+image_atomic_inc v1, v2, s[12:19] dmask:0x1 unorm lwe
+// CHECK: [0x00,0x11,0x6e,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_inc v1, v2, s[12:19] dmask:0x1 unorm da
+// CHECK: [0x00,0x51,0x6c,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_dec v1, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x70,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_dec v252, v2, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x70,0xf0,0x02,0xfc,0x03,0x00]
+
+image_atomic_dec v1, v255, s[12:19] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x70,0xf0,0xff,0x01,0x03,0x00]
+
+image_atomic_dec v1, v2, s[16:23] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x70,0xf0,0x02,0x01,0x04,0x00]
+
+image_atomic_dec v1, v2, s[96:103] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x70,0xf0,0x02,0x01,0x18,0x00]
+
+image_atomic_dec v1, v2, ttmp[4:11] dmask:0x1 unorm
+// CHECK: [0x00,0x11,0x70,0xf0,0x02,0x01,0x1d,0x00]
+
+image_atomic_dec v[1:2], v2, s[12:19] dmask:0x3 unorm
+// CHECK: [0x00,0x13,0x70,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_dec v1, v2, s[12:19] dmask:0x1 unorm glc
+// CHECK: [0x00,0x31,0x70,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_dec v1, v2, s[12:19] dmask:0x1 unorm slc
+// CHECK: [0x00,0x11,0x70,0xf2,0x02,0x01,0x03,0x00]
+
+image_atomic_dec v1, v2, s[12:19] dmask:0x1 unorm lwe
+// CHECK: [0x00,0x11,0x72,0xf0,0x02,0x01,0x03,0x00]
+
+image_atomic_dec v1, v2, s[12:19] dmask:0x1 unorm da
+// CHECK: [0x00,0x51,0x70,0xf0,0x02,0x01,0x03,0x00]
+
 image_sample v5, v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x80,0xf0,0x01,0x05,0x62,0x00]
 
@@ -4155,6 +4653,9 @@ image_sample v5, v[1:4], s[12:19], s[12:
 image_sample v5, v[1:4], s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x80,0xf0,0x01,0x05,0x78,0x00]
 
+image_sample v5, v[1:4], ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x80,0xf0,0x01,0x05,0x7d,0x00]
+
 image_sample v5, v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x80,0xf0,0x01,0x05,0x82,0x00]
 
@@ -4203,15 +4704,27 @@ image_sample v[5:7], v[1:4], s[8:15], s[
 image_sample v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
 // CHECK: [0x00,0x0e,0x80,0xf0,0x01,0x05,0x62,0x00]
 
-image_sample v[5:8], v[1:4], s[8:15], s[12:15] dmask:0xf
-// CHECK: [0x00,0x0f,0x80,0xf0,0x01,0x05,0x62,0x00]
-
 image_sample v5, v[1:4], s[8:15], s[12:15] dmask:0x0
 // CHECK: [0x00,0x00,0x80,0xf0,0x01,0x05,0x62,0x00]
 
 image_sample v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x80,0xf0,0x01,0x05,0x62,0x00]
 
+image_sample v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+// CHECK: [0x00,0x21,0x80,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+// CHECK: [0x00,0x01,0x80,0xf2,0x01,0x05,0x62,0x00]
+
+image_sample v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
+// CHECK: [0x00,0x01,0x81,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+// CHECK: [0x00,0x01,0x82,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+// CHECK: [0x00,0x41,0x80,0xf0,0x01,0x05,0x62,0x00]
+
 image_sample_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x84,0xf0,0x01,0x05,0x62,0x00]
 
@@ -4227,6 +4740,9 @@ image_sample_cl v5, v[1:4], s[12:19], s[
 image_sample_cl v5, v[1:4], s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x84,0xf0,0x01,0x05,0x78,0x00]
 
+image_sample_cl v5, v[1:4], ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x84,0xf0,0x01,0x05,0x7d,0x00]
+
 image_sample_cl v5, v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x84,0xf0,0x01,0x05,0x82,0x00]
 
@@ -4275,15 +4791,27 @@ image_sample_cl v[5:7], v[1:4], s[8:15],
 image_sample_cl v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
 // CHECK: [0x00,0x0e,0x84,0xf0,0x01,0x05,0x62,0x00]
 
-image_sample_cl v[5:8], v[1:4], s[8:15], s[12:15] dmask:0xf
-// CHECK: [0x00,0x0f,0x84,0xf0,0x01,0x05,0x62,0x00]
-
 image_sample_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x0
 // CHECK: [0x00,0x00,0x84,0xf0,0x01,0x05,0x62,0x00]
 
 image_sample_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x84,0xf0,0x01,0x05,0x62,0x00]
 
+image_sample_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+// CHECK: [0x00,0x21,0x84,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+// CHECK: [0x00,0x01,0x84,0xf2,0x01,0x05,0x62,0x00]
+
+image_sample_cl v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
+// CHECK: [0x00,0x01,0x85,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+// CHECK: [0x00,0x01,0x86,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+// CHECK: [0x00,0x41,0x84,0xf0,0x01,0x05,0x62,0x00]
+
 image_sample_l v5, v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x90,0xf0,0x01,0x05,0x62,0x00]
 
@@ -4299,6 +4827,9 @@ image_sample_l v5, v[1:4], s[12:19], s[1
 image_sample_l v5, v[1:4], s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x90,0xf0,0x01,0x05,0x78,0x00]
 
+image_sample_l v5, v[1:4], ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x90,0xf0,0x01,0x05,0x7d,0x00]
+
 image_sample_l v5, v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x90,0xf0,0x01,0x05,0x82,0x00]
 
@@ -4347,15 +4878,27 @@ image_sample_l v[5:7], v[1:4], s[8:15],
 image_sample_l v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
 // CHECK: [0x00,0x0e,0x90,0xf0,0x01,0x05,0x62,0x00]
 
-image_sample_l v[5:8], v[1:4], s[8:15], s[12:15] dmask:0xf
-// CHECK: [0x00,0x0f,0x90,0xf0,0x01,0x05,0x62,0x00]
-
 image_sample_l v5, v[1:4], s[8:15], s[12:15] dmask:0x0
 // CHECK: [0x00,0x00,0x90,0xf0,0x01,0x05,0x62,0x00]
 
 image_sample_l v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x90,0xf0,0x01,0x05,0x62,0x00]
 
+image_sample_l v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+// CHECK: [0x00,0x21,0x90,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_l v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+// CHECK: [0x00,0x01,0x90,0xf2,0x01,0x05,0x62,0x00]
+
+image_sample_l v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
+// CHECK: [0x00,0x01,0x91,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_l v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+// CHECK: [0x00,0x01,0x92,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_l v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+// CHECK: [0x00,0x41,0x90,0xf0,0x01,0x05,0x62,0x00]
+
 image_sample_b v5, v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x94,0xf0,0x01,0x05,0x62,0x00]
 
@@ -4371,6 +4914,9 @@ image_sample_b v5, v[1:4], s[12:19], s[1
 image_sample_b v5, v[1:4], s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x94,0xf0,0x01,0x05,0x78,0x00]
 
+image_sample_b v5, v[1:4], ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x94,0xf0,0x01,0x05,0x7d,0x00]
+
 image_sample_b v5, v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x94,0xf0,0x01,0x05,0x82,0x00]
 
@@ -4419,15 +4965,27 @@ image_sample_b v[5:7], v[1:4], s[8:15],
 image_sample_b v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
 // CHECK: [0x00,0x0e,0x94,0xf0,0x01,0x05,0x62,0x00]
 
-image_sample_b v[5:8], v[1:4], s[8:15], s[12:15] dmask:0xf
-// CHECK: [0x00,0x0f,0x94,0xf0,0x01,0x05,0x62,0x00]
-
 image_sample_b v5, v[1:4], s[8:15], s[12:15] dmask:0x0
 // CHECK: [0x00,0x00,0x94,0xf0,0x01,0x05,0x62,0x00]
 
 image_sample_b v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x94,0xf0,0x01,0x05,0x62,0x00]
 
+image_sample_b v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+// CHECK: [0x00,0x21,0x94,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_b v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+// CHECK: [0x00,0x01,0x94,0xf2,0x01,0x05,0x62,0x00]
+
+image_sample_b v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
+// CHECK: [0x00,0x01,0x95,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_b v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+// CHECK: [0x00,0x01,0x96,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_b v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+// CHECK: [0x00,0x41,0x94,0xf0,0x01,0x05,0x62,0x00]
+
 image_sample_b_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x98,0xf0,0x01,0x05,0x62,0x00]
 
@@ -4443,6 +5001,9 @@ image_sample_b_cl v5, v[1:4], s[12:19],
 image_sample_b_cl v5, v[1:4], s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x98,0xf0,0x01,0x05,0x78,0x00]
 
+image_sample_b_cl v5, v[1:4], ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x98,0xf0,0x01,0x05,0x7d,0x00]
+
 image_sample_b_cl v5, v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x98,0xf0,0x01,0x05,0x82,0x00]
 
@@ -4491,15 +5052,27 @@ image_sample_b_cl v[5:7], v[1:4], s[8:15
 image_sample_b_cl v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
 // CHECK: [0x00,0x0e,0x98,0xf0,0x01,0x05,0x62,0x00]
 
-image_sample_b_cl v[5:8], v[1:4], s[8:15], s[12:15] dmask:0xf
-// CHECK: [0x00,0x0f,0x98,0xf0,0x01,0x05,0x62,0x00]
-
 image_sample_b_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x0
 // CHECK: [0x00,0x00,0x98,0xf0,0x01,0x05,0x62,0x00]
 
 image_sample_b_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x98,0xf0,0x01,0x05,0x62,0x00]
 
+image_sample_b_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+// CHECK: [0x00,0x21,0x98,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_b_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+// CHECK: [0x00,0x01,0x98,0xf2,0x01,0x05,0x62,0x00]
+
+image_sample_b_cl v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
+// CHECK: [0x00,0x01,0x99,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_b_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+// CHECK: [0x00,0x01,0x9a,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_b_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+// CHECK: [0x00,0x41,0x98,0xf0,0x01,0x05,0x62,0x00]
+
 image_sample_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x9c,0xf0,0x01,0x05,0x62,0x00]
 
@@ -4515,6 +5088,9 @@ image_sample_lz v5, v[1:4], s[12:19], s[
 image_sample_lz v5, v[1:4], s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x9c,0xf0,0x01,0x05,0x78,0x00]
 
+image_sample_lz v5, v[1:4], ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x9c,0xf0,0x01,0x05,0x7d,0x00]
+
 image_sample_lz v5, v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x9c,0xf0,0x01,0x05,0x82,0x00]
 
@@ -4563,15 +5139,27 @@ image_sample_lz v[5:7], v[1:4], s[8:15],
 image_sample_lz v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
 // CHECK: [0x00,0x0e,0x9c,0xf0,0x01,0x05,0x62,0x00]
 
-image_sample_lz v[5:8], v[1:4], s[8:15], s[12:15] dmask:0xf
-// CHECK: [0x00,0x0f,0x9c,0xf0,0x01,0x05,0x62,0x00]
-
 image_sample_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x0
 // CHECK: [0x00,0x00,0x9c,0xf0,0x01,0x05,0x62,0x00]
 
 image_sample_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x9c,0xf0,0x01,0x05,0x62,0x00]
 
+image_sample_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+// CHECK: [0x00,0x21,0x9c,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+// CHECK: [0x00,0x01,0x9c,0xf2,0x01,0x05,0x62,0x00]
+
+image_sample_lz v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
+// CHECK: [0x00,0x01,0x9d,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+// CHECK: [0x00,0x01,0x9e,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+// CHECK: [0x00,0x41,0x9c,0xf0,0x01,0x05,0x62,0x00]
+
 image_sample_c v5, v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0xa0,0xf0,0x01,0x05,0x62,0x00]
 
@@ -4587,6 +5175,9 @@ image_sample_c v5, v[1:4], s[12:19], s[1
 image_sample_c v5, v[1:4], s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0xa0,0xf0,0x01,0x05,0x78,0x00]
 
+image_sample_c v5, v[1:4], ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0xa0,0xf0,0x01,0x05,0x7d,0x00]
+
 image_sample_c v5, v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0xa0,0xf0,0x01,0x05,0x82,0x00]
 
@@ -4635,15 +5226,27 @@ image_sample_c v[5:7], v[1:4], s[8:15],
 image_sample_c v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
 // CHECK: [0x00,0x0e,0xa0,0xf0,0x01,0x05,0x62,0x00]
 
-image_sample_c v[5:8], v[1:4], s[8:15], s[12:15] dmask:0xf
-// CHECK: [0x00,0x0f,0xa0,0xf0,0x01,0x05,0x62,0x00]
-
 image_sample_c v5, v[1:4], s[8:15], s[12:15] dmask:0x0
 // CHECK: [0x00,0x00,0xa0,0xf0,0x01,0x05,0x62,0x00]
 
 image_sample_c v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0xa0,0xf0,0x01,0x05,0x62,0x00]
 
+image_sample_c v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+// CHECK: [0x00,0x21,0xa0,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+// CHECK: [0x00,0x01,0xa0,0xf2,0x01,0x05,0x62,0x00]
+
+image_sample_c v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
+// CHECK: [0x00,0x01,0xa1,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+// CHECK: [0x00,0x01,0xa2,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+// CHECK: [0x00,0x41,0xa0,0xf0,0x01,0x05,0x62,0x00]
+
 image_sample_c_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0xa4,0xf0,0x01,0x05,0x62,0x00]
 
@@ -4659,6 +5262,9 @@ image_sample_c_cl v5, v[1:4], s[12:19],
 image_sample_c_cl v5, v[1:4], s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0xa4,0xf0,0x01,0x05,0x78,0x00]
 
+image_sample_c_cl v5, v[1:4], ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0xa4,0xf0,0x01,0x05,0x7d,0x00]
+
 image_sample_c_cl v5, v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0xa4,0xf0,0x01,0x05,0x82,0x00]
 
@@ -4707,15 +5313,27 @@ image_sample_c_cl v[5:7], v[1:4], s[8:15
 image_sample_c_cl v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
 // CHECK: [0x00,0x0e,0xa4,0xf0,0x01,0x05,0x62,0x00]
 
-image_sample_c_cl v[5:8], v[1:4], s[8:15], s[12:15] dmask:0xf
-// CHECK: [0x00,0x0f,0xa4,0xf0,0x01,0x05,0x62,0x00]
-
 image_sample_c_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x0
 // CHECK: [0x00,0x00,0xa4,0xf0,0x01,0x05,0x62,0x00]
 
 image_sample_c_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0xa4,0xf0,0x01,0x05,0x62,0x00]
 
+image_sample_c_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+// CHECK: [0x00,0x21,0xa4,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+// CHECK: [0x00,0x01,0xa4,0xf2,0x01,0x05,0x62,0x00]
+
+image_sample_c_cl v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
+// CHECK: [0x00,0x01,0xa5,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+// CHECK: [0x00,0x01,0xa6,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+// CHECK: [0x00,0x41,0xa4,0xf0,0x01,0x05,0x62,0x00]
+
 image_sample_c_d v5, v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0xa8,0xf0,0x01,0x05,0x62,0x00]
 
@@ -4731,6 +5349,9 @@ image_sample_c_d v5, v[1:4], s[12:19], s
 image_sample_c_d v5, v[1:4], s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0xa8,0xf0,0x01,0x05,0x78,0x00]
 
+image_sample_c_d v5, v[1:4], ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0xa8,0xf0,0x01,0x05,0x7d,0x00]
+
 image_sample_c_d v5, v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0xa8,0xf0,0x01,0x05,0x82,0x00]
 
@@ -4779,15 +5400,27 @@ image_sample_c_d v[5:7], v[1:4], s[8:15]
 image_sample_c_d v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
 // CHECK: [0x00,0x0e,0xa8,0xf0,0x01,0x05,0x62,0x00]
 
-image_sample_c_d v[5:8], v[1:4], s[8:15], s[12:15] dmask:0xf
-// CHECK: [0x00,0x0f,0xa8,0xf0,0x01,0x05,0x62,0x00]
-
 image_sample_c_d v5, v[1:4], s[8:15], s[12:15] dmask:0x0
 // CHECK: [0x00,0x00,0xa8,0xf0,0x01,0x05,0x62,0x00]
 
 image_sample_c_d v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0xa8,0xf0,0x01,0x05,0x62,0x00]
 
+image_sample_c_d v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+// CHECK: [0x00,0x21,0xa8,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c_d v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+// CHECK: [0x00,0x01,0xa8,0xf2,0x01,0x05,0x62,0x00]
+
+image_sample_c_d v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
+// CHECK: [0x00,0x01,0xa9,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c_d v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+// CHECK: [0x00,0x01,0xaa,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c_d v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+// CHECK: [0x00,0x41,0xa8,0xf0,0x01,0x05,0x62,0x00]
+
 image_sample_c_l v5, v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0xb0,0xf0,0x01,0x05,0x62,0x00]
 
@@ -4803,6 +5436,9 @@ image_sample_c_l v5, v[1:4], s[12:19], s
 image_sample_c_l v5, v[1:4], s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0xb0,0xf0,0x01,0x05,0x78,0x00]
 
+image_sample_c_l v5, v[1:4], ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0xb0,0xf0,0x01,0x05,0x7d,0x00]
+
 image_sample_c_l v5, v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0xb0,0xf0,0x01,0x05,0x82,0x00]
 
@@ -4851,15 +5487,27 @@ image_sample_c_l v[5:7], v[1:4], s[8:15]
 image_sample_c_l v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
 // CHECK: [0x00,0x0e,0xb0,0xf0,0x01,0x05,0x62,0x00]
 
-image_sample_c_l v[5:8], v[1:4], s[8:15], s[12:15] dmask:0xf
-// CHECK: [0x00,0x0f,0xb0,0xf0,0x01,0x05,0x62,0x00]
-
 image_sample_c_l v5, v[1:4], s[8:15], s[12:15] dmask:0x0
 // CHECK: [0x00,0x00,0xb0,0xf0,0x01,0x05,0x62,0x00]
 
 image_sample_c_l v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0xb0,0xf0,0x01,0x05,0x62,0x00]
 
+image_sample_c_l v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+// CHECK: [0x00,0x21,0xb0,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c_l v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+// CHECK: [0x00,0x01,0xb0,0xf2,0x01,0x05,0x62,0x00]
+
+image_sample_c_l v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
+// CHECK: [0x00,0x01,0xb1,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c_l v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+// CHECK: [0x00,0x01,0xb2,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c_l v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+// CHECK: [0x00,0x41,0xb0,0xf0,0x01,0x05,0x62,0x00]
+
 image_sample_c_b v5, v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0xb4,0xf0,0x01,0x05,0x62,0x00]
 
@@ -4875,6 +5523,9 @@ image_sample_c_b v5, v[1:4], s[12:19], s
 image_sample_c_b v5, v[1:4], s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0xb4,0xf0,0x01,0x05,0x78,0x00]
 
+image_sample_c_b v5, v[1:4], ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0xb4,0xf0,0x01,0x05,0x7d,0x00]
+
 image_sample_c_b v5, v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0xb4,0xf0,0x01,0x05,0x82,0x00]
 
@@ -4923,15 +5574,27 @@ image_sample_c_b v[5:7], v[1:4], s[8:15]
 image_sample_c_b v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
 // CHECK: [0x00,0x0e,0xb4,0xf0,0x01,0x05,0x62,0x00]
 
-image_sample_c_b v[5:8], v[1:4], s[8:15], s[12:15] dmask:0xf
-// CHECK: [0x00,0x0f,0xb4,0xf0,0x01,0x05,0x62,0x00]
-
 image_sample_c_b v5, v[1:4], s[8:15], s[12:15] dmask:0x0
 // CHECK: [0x00,0x00,0xb4,0xf0,0x01,0x05,0x62,0x00]
 
 image_sample_c_b v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0xb4,0xf0,0x01,0x05,0x62,0x00]
 
+image_sample_c_b v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+// CHECK: [0x00,0x21,0xb4,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c_b v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+// CHECK: [0x00,0x01,0xb4,0xf2,0x01,0x05,0x62,0x00]
+
+image_sample_c_b v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
+// CHECK: [0x00,0x01,0xb5,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c_b v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+// CHECK: [0x00,0x01,0xb6,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c_b v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+// CHECK: [0x00,0x41,0xb4,0xf0,0x01,0x05,0x62,0x00]
+
 image_sample_c_b_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0xb8,0xf0,0x01,0x05,0x62,0x00]
 
@@ -4947,6 +5610,9 @@ image_sample_c_b_cl v5, v[1:4], s[12:19]
 image_sample_c_b_cl v5, v[1:4], s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0xb8,0xf0,0x01,0x05,0x78,0x00]
 
+image_sample_c_b_cl v5, v[1:4], ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0xb8,0xf0,0x01,0x05,0x7d,0x00]
+
 image_sample_c_b_cl v5, v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0xb8,0xf0,0x01,0x05,0x82,0x00]
 
@@ -4995,15 +5661,27 @@ image_sample_c_b_cl v[5:7], v[1:4], s[8:
 image_sample_c_b_cl v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
 // CHECK: [0x00,0x0e,0xb8,0xf0,0x01,0x05,0x62,0x00]
 
-image_sample_c_b_cl v[5:8], v[1:4], s[8:15], s[12:15] dmask:0xf
-// CHECK: [0x00,0x0f,0xb8,0xf0,0x01,0x05,0x62,0x00]
-
 image_sample_c_b_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x0
 // CHECK: [0x00,0x00,0xb8,0xf0,0x01,0x05,0x62,0x00]
 
 image_sample_c_b_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0xb8,0xf0,0x01,0x05,0x62,0x00]
 
+image_sample_c_b_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+// CHECK: [0x00,0x21,0xb8,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c_b_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+// CHECK: [0x00,0x01,0xb8,0xf2,0x01,0x05,0x62,0x00]
+
+image_sample_c_b_cl v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
+// CHECK: [0x00,0x01,0xb9,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c_b_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+// CHECK: [0x00,0x01,0xba,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c_b_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+// CHECK: [0x00,0x41,0xb8,0xf0,0x01,0x05,0x62,0x00]
+
 image_sample_c_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0xbc,0xf0,0x01,0x05,0x62,0x00]
 
@@ -5019,6 +5697,9 @@ image_sample_c_lz v5, v[1:4], s[12:19],
 image_sample_c_lz v5, v[1:4], s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0xbc,0xf0,0x01,0x05,0x78,0x00]
 
+image_sample_c_lz v5, v[1:4], ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0xbc,0xf0,0x01,0x05,0x7d,0x00]
+
 image_sample_c_lz v5, v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0xbc,0xf0,0x01,0x05,0x82,0x00]
 
@@ -5067,15 +5748,27 @@ image_sample_c_lz v[5:7], v[1:4], s[8:15
 image_sample_c_lz v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
 // CHECK: [0x00,0x0e,0xbc,0xf0,0x01,0x05,0x62,0x00]
 
-image_sample_c_lz v[5:8], v[1:4], s[8:15], s[12:15] dmask:0xf
-// CHECK: [0x00,0x0f,0xbc,0xf0,0x01,0x05,0x62,0x00]
-
 image_sample_c_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x0
 // CHECK: [0x00,0x00,0xbc,0xf0,0x01,0x05,0x62,0x00]
 
 image_sample_c_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0xbc,0xf0,0x01,0x05,0x62,0x00]
 
+image_sample_c_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+// CHECK: [0x00,0x21,0xbc,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+// CHECK: [0x00,0x01,0xbc,0xf2,0x01,0x05,0x62,0x00]
+
+image_sample_c_lz v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
+// CHECK: [0x00,0x01,0xbd,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+// CHECK: [0x00,0x01,0xbe,0xf0,0x01,0x05,0x62,0x00]
+
+image_sample_c_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+// CHECK: [0x00,0x41,0xbc,0xf0,0x01,0x05,0x62,0x00]
+
 image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x00,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5091,12 +5784,18 @@ image_gather4 v[5:8], v1, s[12:19], s[12
 image_gather4 v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x00,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4 v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x00,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4 v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x00,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4 v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x00,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4 v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x00,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x00,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5136,12 +5835,18 @@ image_gather4_cl v[5:8], v1, s[12:19], s
 image_gather4_cl v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_cl v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x04,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_cl v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_cl v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_cl v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x04,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x04,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5181,12 +5886,18 @@ image_gather4_l v[5:8], v1, s[12:19], s[
 image_gather4_l v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_l v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x10,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_l v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_l v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_l v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x10,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x10,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5226,12 +5937,18 @@ image_gather4_b v[5:8], v1, s[12:19], s[
 image_gather4_b v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_b v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x14,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_b v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_b v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_b v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x14,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x14,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5271,12 +5988,18 @@ image_gather4_b_cl v[5:8], v1, s[12:19],
 image_gather4_b_cl v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x18,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_b_cl v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x18,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_b_cl v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x18,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_b_cl v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x18,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_b_cl v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x18,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x18,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5316,12 +6039,18 @@ image_gather4_lz v[5:8], v1, s[12:19], s
 image_gather4_lz v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x1c,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_lz v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x1c,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_lz v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x1c,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_lz v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x1c,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_lz v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x1c,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x1c,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5361,12 +6090,18 @@ image_gather4_c v[5:8], v1, s[12:19], s[
 image_gather4_c v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_c v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x20,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_c v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_c v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_c v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x20,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x20,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5406,12 +6141,18 @@ image_gather4_c_cl v[5:8], v1, s[12:19],
 image_gather4_c_cl v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x24,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_c_cl v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x24,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_c_cl v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x24,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_c_cl v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x24,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_c_cl v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x24,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_c_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x24,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5451,12 +6192,18 @@ image_gather4_c_l v[5:8], v1, s[12:19],
 image_gather4_c_l v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x30,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_c_l v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x30,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_c_l v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x30,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_c_l v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x30,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_c_l v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x30,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_c_l v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x30,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5496,12 +6243,18 @@ image_gather4_c_b v[5:8], v1, s[12:19],
 image_gather4_c_b v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x34,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_c_b v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x34,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_c_b v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x34,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_c_b v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x34,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_c_b v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x34,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_c_b v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x34,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5541,12 +6294,18 @@ image_gather4_c_b_cl v[5:8], v1, s[12:19
 image_gather4_c_b_cl v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x38,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_c_b_cl v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x38,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_c_b_cl v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x38,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_c_b_cl v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x38,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_c_b_cl v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x38,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_c_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x38,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5586,12 +6345,18 @@ image_gather4_c_lz v[5:8], v1, s[12:19],
 image_gather4_c_lz v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_c_lz v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x3c,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_c_lz v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_c_lz v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_c_lz v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x3c,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_c_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5631,12 +6396,18 @@ image_gather4_o v[5:8], v1, s[12:19], s[
 image_gather4_o v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_o v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x40,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_o v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_o v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_o v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x40,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x40,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5676,12 +6447,18 @@ image_gather4_cl_o v[5:8], v1, s[12:19],
 image_gather4_cl_o v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x44,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_cl_o v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x44,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_cl_o v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x44,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_cl_o v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x44,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_cl_o v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x44,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x44,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5721,12 +6498,18 @@ image_gather4_l_o v[5:8], v1, s[12:19],
 image_gather4_l_o v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x50,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_l_o v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x50,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_l_o v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x50,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_l_o v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x50,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_l_o v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x50,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x50,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5766,12 +6549,18 @@ image_gather4_b_o v[5:8], v1, s[12:19],
 image_gather4_b_o v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x54,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_b_o v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x54,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_b_o v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x54,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_b_o v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x54,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_b_o v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x54,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x54,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5811,12 +6600,18 @@ image_gather4_b_cl_o v[5:8], v1, s[12:19
 image_gather4_b_cl_o v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x58,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_b_cl_o v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x58,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_b_cl_o v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x58,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_b_cl_o v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x58,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_b_cl_o v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x58,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x58,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5856,12 +6651,18 @@ image_gather4_lz_o v[5:8], v1, s[12:19],
 image_gather4_lz_o v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_lz_o v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x5c,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_lz_o v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_lz_o v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_lz_o v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x5c,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5901,12 +6702,18 @@ image_gather4_c_o v[5:8], v1, s[12:19],
 image_gather4_c_o v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x60,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_c_o v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x60,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_c_o v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x60,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_c_o v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x60,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_c_o v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x60,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_c_o v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x60,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5946,12 +6753,18 @@ image_gather4_c_cl_o v[5:8], v1, s[12:19
 image_gather4_c_cl_o v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x64,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_c_cl_o v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x64,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_c_cl_o v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x64,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_c_cl_o v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x64,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_c_cl_o v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x64,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_c_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x64,0xf1,0x01,0x05,0x62,0x00]
 
@@ -5991,12 +6804,18 @@ image_gather4_c_l_o v[5:8], v1, s[12:19]
 image_gather4_c_l_o v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x70,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_c_l_o v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x70,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_c_l_o v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x70,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_c_l_o v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x70,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_c_l_o v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x70,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_c_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x70,0xf1,0x01,0x05,0x62,0x00]
 
@@ -6036,12 +6855,18 @@ image_gather4_c_b_o v[5:8], v1, s[12:19]
 image_gather4_c_b_o v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x74,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_c_b_o v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x74,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_c_b_o v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x74,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_c_b_o v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x74,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_c_b_o v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x74,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_c_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x74,0xf1,0x01,0x05,0x62,0x00]
 
@@ -6081,12 +6906,18 @@ image_gather4_c_b_cl_o v[5:8], v1, s[12:
 image_gather4_c_b_cl_o v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x78,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_c_b_cl_o v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x78,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x78,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x78,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_c_b_cl_o v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x78,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x78,0xf1,0x01,0x05,0x62,0x00]
 
@@ -6126,12 +6957,18 @@ image_gather4_c_lz_o v[5:8], v1, s[12:19
 image_gather4_c_lz_o v[5:8], v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x7c,0xf1,0x01,0x05,0x78,0x00]
 
+image_gather4_c_lz_o v[5:8], v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x7c,0xf1,0x01,0x05,0x7d,0x00]
+
 image_gather4_c_lz_o v[5:8], v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x7c,0xf1,0x01,0x05,0x82,0x00]
 
 image_gather4_c_lz_o v[5:8], v1, s[8:15], s[100:103] dmask:0x1
 // CHECK: [0x00,0x01,0x7c,0xf1,0x01,0x05,0x22,0x03]
 
+image_gather4_c_lz_o v[5:8], v1, s[8:15], ttmp[8:11] dmask:0x1
+// CHECK: [0x00,0x01,0x7c,0xf1,0x01,0x05,0xc2,0x03]
+
 image_gather4_c_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x7c,0xf1,0x01,0x05,0x62,0x00]
 
@@ -6171,6 +7008,9 @@ image_get_lod v5, v1, s[12:19], s[12:15]
 image_get_lod v5, v1, s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x80,0xf1,0x01,0x05,0x78,0x00]
 
+image_get_lod v5, v1, ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0x80,0xf1,0x01,0x05,0x7d,0x00]
+
 image_get_lod v5, v1, s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x80,0xf1,0x01,0x05,0x82,0x00]
 
@@ -6219,15 +7059,27 @@ image_get_lod v[5:7], v1, s[8:15], s[12:
 image_get_lod v[5:7], v1, s[8:15], s[12:15] dmask:0xe
 // CHECK: [0x00,0x0e,0x80,0xf1,0x01,0x05,0x62,0x00]
 
-image_get_lod v[5:8], v1, s[8:15], s[12:15] dmask:0xf
-// CHECK: [0x00,0x0f,0x80,0xf1,0x01,0x05,0x62,0x00]
-
 image_get_lod v5, v1, s[8:15], s[12:15] dmask:0x0
 // CHECK: [0x00,0x00,0x80,0xf1,0x01,0x05,0x62,0x00]
 
 image_get_lod v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x80,0xf1,0x01,0x05,0x62,0x00]
 
+image_get_lod v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+// CHECK: [0x00,0x21,0x80,0xf1,0x01,0x05,0x62,0x00]
+
+image_get_lod v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+// CHECK: [0x00,0x01,0x80,0xf3,0x01,0x05,0x62,0x00]
+
+image_get_lod v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
+// CHECK: [0x00,0x01,0x81,0xf1,0x01,0x05,0x62,0x00]
+
+image_get_lod v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+// CHECK: [0x00,0x01,0x82,0xf1,0x01,0x05,0x62,0x00]
+
+image_get_lod v5, v1, s[8:15], s[12:15] dmask:0x1 da
+// CHECK: [0x00,0x41,0x80,0xf1,0x01,0x05,0x62,0x00]
+
 image_sample_c_cd v5, v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0xa8,0xf1,0x01,0x05,0x62,0x00]
 
@@ -6243,6 +7095,9 @@ image_sample_c_cd v5, v[1:4], s[12:19],
 image_sample_c_cd v5, v[1:4], s[96:103], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0xa8,0xf1,0x01,0x05,0x78,0x00]
 
+image_sample_c_cd v5, v[1:4], ttmp[4:11], s[12:15] dmask:0x1
+// CHECK: [0x00,0x01,0xa8,0xf1,0x01,0x05,0x7d,0x00]
+
 image_sample_c_cd v5, v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0xa8,0xf1,0x01,0x05,0x82,0x00]
 
@@ -6291,15 +7146,27 @@ image_sample_c_cd v[5:7], v[1:4], s[8:15
 image_sample_c_cd v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
 // CHECK: [0x00,0x0e,0xa8,0xf1,0x01,0x05,0x62,0x00]
 
-image_sample_c_cd v[5:8], v[1:4], s[8:15], s[12:15] dmask:0xf
-// CHECK: [0x00,0x0f,0xa8,0xf1,0x01,0x05,0x62,0x00]
-
 image_sample_c_cd v5, v[1:4], s[8:15], s[12:15] dmask:0x0
 // CHECK: [0x00,0x00,0xa8,0xf1,0x01,0x05,0x62,0x00]
 
 image_sample_c_cd v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0xa8,0xf1,0x01,0x05,0x62,0x00]
 
+image_sample_c_cd v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+// CHECK: [0x00,0x21,0xa8,0xf1,0x01,0x05,0x62,0x00]
+
+image_sample_c_cd v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+// CHECK: [0x00,0x01,0xa8,0xf3,0x01,0x05,0x62,0x00]
+
+image_sample_c_cd v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
+// CHECK: [0x00,0x01,0xa9,0xf1,0x01,0x05,0x62,0x00]
+
+image_sample_c_cd v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+// CHECK: [0x00,0x01,0xaa,0xf1,0x01,0x05,0x62,0x00]
+
+image_sample_c_cd v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+// CHECK: [0x00,0x41,0xa8,0xf1,0x01,0x05,0x62,0x00]
+
 buffer_load_format_x v5, off, s[8:11], s3 offset:4095
 // CHECK: [0xff,0x0f,0x00,0xe0,0x00,0x05,0x02,0x03]
 
@@ -6357,6 +7224,9 @@ buffer_load_format_x v5, off, s[8:11], s
 buffer_load_format_x v5, off, s[8:11], s3 offset:4095 slc
 // CHECK: [0xff,0x0f,0x00,0xe0,0x00,0x05,0x42,0x03]
 
+buffer_load_format_x v5, off, s[8:11], s3 offset:4095 lds
+// CHECK: [0xff,0x0f,0x01,0xe0,0x00,0x05,0x02,0x03]
+
 buffer_load_format_xy v[5:6], off, s[8:11], s3 offset:4095
 // CHECK: [0xff,0x0f,0x04,0xe0,0x00,0x05,0x02,0x03]
 
@@ -6813,6 +7683,9 @@ buffer_load_ubyte v5, off, s[8:11], s3 o
 buffer_load_ubyte v5, off, s[8:11], s3 offset:4095 slc
 // CHECK: [0xff,0x0f,0x20,0xe0,0x00,0x05,0x42,0x03]
 
+buffer_load_ubyte v5, off, s[8:11], s3 offset:4095 lds
+// CHECK: [0xff,0x0f,0x21,0xe0,0x00,0x05,0x02,0x03]
+
 buffer_load_sbyte v5, off, s[8:11], s3 offset:4095
 // CHECK: [0xff,0x0f,0x24,0xe0,0x00,0x05,0x02,0x03]
 
@@ -6870,6 +7743,9 @@ buffer_load_sbyte v5, off, s[8:11], s3 o
 buffer_load_sbyte v5, off, s[8:11], s3 offset:4095 slc
 // CHECK: [0xff,0x0f,0x24,0xe0,0x00,0x05,0x42,0x03]
 
+buffer_load_sbyte v5, off, s[8:11], s3 offset:4095 lds
+// CHECK: [0xff,0x0f,0x25,0xe0,0x00,0x05,0x02,0x03]
+
 buffer_load_ushort v5, off, s[8:11], s3 offset:4095
 // CHECK: [0xff,0x0f,0x28,0xe0,0x00,0x05,0x02,0x03]
 
@@ -6927,6 +7803,9 @@ buffer_load_ushort v5, off, s[8:11], s3
 buffer_load_ushort v5, off, s[8:11], s3 offset:4095 slc
 // CHECK: [0xff,0x0f,0x28,0xe0,0x00,0x05,0x42,0x03]
 
+buffer_load_ushort v5, off, s[8:11], s3 offset:4095 lds
+// CHECK: [0xff,0x0f,0x29,0xe0,0x00,0x05,0x02,0x03]
+
 buffer_load_sshort v5, off, s[8:11], s3 offset:4095
 // CHECK: [0xff,0x0f,0x2c,0xe0,0x00,0x05,0x02,0x03]
 
@@ -6984,6 +7863,9 @@ buffer_load_sshort v5, off, s[8:11], s3
 buffer_load_sshort v5, off, s[8:11], s3 offset:4095 slc
 // CHECK: [0xff,0x0f,0x2c,0xe0,0x00,0x05,0x42,0x03]
 
+buffer_load_sshort v5, off, s[8:11], s3 offset:4095 lds
+// CHECK: [0xff,0x0f,0x2d,0xe0,0x00,0x05,0x02,0x03]
+
 buffer_load_dword v5, off, s[8:11], s3 offset:4095
 // CHECK: [0xff,0x0f,0x30,0xe0,0x00,0x05,0x02,0x03]
 
@@ -7041,6 +7923,9 @@ buffer_load_dword v5, off, s[8:11], s3 o
 buffer_load_dword v5, off, s[8:11], s3 offset:4095 slc
 // CHECK: [0xff,0x0f,0x30,0xe0,0x00,0x05,0x42,0x03]
 
+buffer_load_dword v5, off, s[8:11], s3 offset:4095 lds
+// CHECK: [0xff,0x0f,0x31,0xe0,0x00,0x05,0x02,0x03]
+
 buffer_load_dwordx2 v[5:6], off, s[8:11], s3 offset:4095
 // CHECK: [0xff,0x0f,0x34,0xe0,0x00,0x05,0x02,0x03]
 




More information about the llvm-commits mailing list