[llvm] r327278 - [AMDGPU][MC] Corrected GATHER4 opcodes

Dmitry Preobrazhensky via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 12 08:03:35 PDT 2018


Author: dpreobra
Date: Mon Mar 12 08:03:34 2018
New Revision: 327278

URL: http://llvm.org/viewvc/llvm-project?rev=327278&view=rev
Log:
[AMDGPU][MC] Corrected GATHER4 opcodes

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

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

Reviewers: artem.tamazov, arsenm

Modified:
    llvm/trunk/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    llvm/trunk/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
    llvm/trunk/lib/Target/AMDGPU/MIMGInstructions.td
    llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgcn.image.gather4.d16.ll
    llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgcn.image.gather4.ll
    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/mimg-err.s
    llvm/trunk/test/MC/AMDGPU/mimg.s
    llvm/trunk/test/MC/Disassembler/AMDGPU/mimg_vi.txt

Modified: llvm/trunk/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp?rev=327278&r1=327277&r2=327278&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp (original)
+++ llvm/trunk/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp Mon Mar 12 08:03:34 2018
@@ -1053,6 +1053,7 @@ private:
   bool validateEarlyClobberLimitations(const MCInst &Inst);
   bool validateIntClampSupported(const MCInst &Inst);
   bool validateMIMGAtomicDMask(const MCInst &Inst);
+  bool validateMIMGGatherDMask(const MCInst &Inst);
   bool validateMIMGDataSize(const MCInst &Inst);
   bool validateMIMGR128(const MCInst &Inst);
   bool validateMIMGD16(const MCInst &Inst);
@@ -2299,7 +2300,7 @@ bool AMDGPUAsmParser::validateMIMGDataSi
   if ((Desc.TSFlags & SIInstrFlags::MIMG) == 0)
     return true;
 
-  // Gather4 instructions seem to have special rules not described in spec.
+  // Gather4 instructions do not need validation: dst size is hardcoded.
   if (Desc.TSFlags & SIInstrFlags::Gather4)
     return true;
 
@@ -2345,6 +2346,25 @@ bool AMDGPUAsmParser::validateMIMGAtomic
   return DMask == 0x1 || DMask == 0x3 || DMask == 0xf;
 }
 
+bool AMDGPUAsmParser::validateMIMGGatherDMask(const MCInst &Inst) {
+
+  const unsigned Opc = Inst.getOpcode();
+  const MCInstrDesc &Desc = MII.get(Opc);
+
+  if ((Desc.TSFlags & SIInstrFlags::Gather4) == 0)
+    return true;
+
+  int DMaskIdx = AMDGPU::getNamedOperandIdx(Opc, AMDGPU::OpName::dmask);
+  unsigned DMask = Inst.getOperand(DMaskIdx).getImm() & 0xf;
+
+  // GATHER4 instructions use dmask in a different fashion compared to
+  // other MIMG instructions. The only useful DMASK values are
+  // 1=red, 2=green, 4=blue, 8=alpha. (e.g. 1 returns
+  // (red,red,red,red) etc.) The ISA document doesn't mention
+  // this.
+  return DMask == 0x1 || DMask == 0x2 || DMask == 0x4 || DMask == 0x8;
+}
+
 bool AMDGPUAsmParser::validateMIMGR128(const MCInst &Inst) {
 
   const unsigned Opc = Inst.getOpcode();
@@ -2412,6 +2432,11 @@ bool AMDGPUAsmParser::validateInstructio
       "invalid atomic image dmask");
     return false;
   }
+  if (!validateMIMGGatherDMask(Inst)) {
+    Error(IDLoc,
+      "invalid image_gather dmask: only one bit must be set");
+    return false;
+  }
 
   return true;
 }

Modified: llvm/trunk/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp?rev=327278&r1=327277&r2=327278&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp (original)
+++ llvm/trunk/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp Mon Mar 12 08:03:34 2018
@@ -273,6 +273,11 @@ DecodeStatus AMDGPUDisassembler::convert
 // Consequently, decoded instructions always show address
 // as if it has 1 dword, which could be not really so.
 DecodeStatus AMDGPUDisassembler::convertMIMGInst(MCInst &MI) const {
+
+  if (MCII->get(MI.getOpcode()).TSFlags & SIInstrFlags::Gather4) {
+    return MCDisassembler::Success;
+  }
+
   int VDstIdx = AMDGPU::getNamedOperandIdx(MI.getOpcode(),
                                            AMDGPU::OpName::vdst);
 
@@ -289,7 +294,7 @@ DecodeStatus AMDGPUDisassembler::convert
   assert(DMaskIdx != -1);
   assert(TFEIdx != -1);
 
-  bool isAtomic = (VDstIdx != -1);
+  bool IsAtomic = (VDstIdx != -1);
 
   unsigned DMask = MI.getOperand(DMaskIdx).getImm() & 0xf;
   if (DMask == 0)
@@ -310,7 +315,7 @@ DecodeStatus AMDGPUDisassembler::convert
 
   int NewOpcode = -1;
 
-  if (isAtomic) {
+  if (IsAtomic) {
     if (DMask == 0x1 || DMask == 0x3 || DMask == 0xF) {
       NewOpcode = AMDGPU::getMaskedMIMGAtomicOp(*MCII, MI.getOpcode(), DstSize);
     }
@@ -342,7 +347,7 @@ DecodeStatus AMDGPUDisassembler::convert
   // in the instruction encoding.
   MI.getOperand(VDataIdx) = MCOperand::createReg(NewVdata);
 
-  if (isAtomic) {
+  if (IsAtomic) {
     // Atomic operations have an additional operand (a copy of data)
     MI.getOperand(VDstIdx) = MCOperand::createReg(NewVdata);
   }

Modified: llvm/trunk/lib/Target/AMDGPU/MIMGInstructions.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/MIMGInstructions.td?rev=327278&r1=327277&r2=327278&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/MIMGInstructions.td (original)
+++ llvm/trunk/lib/Target/AMDGPU/MIMGInstructions.td Mon Mar 12 08:03:34 2018
@@ -283,7 +283,10 @@ multiclass MIMG_Sampler_WQM <bits<7> op,
 
 class MIMG_Gather_Helper <bits<7> op, string asm,
                           RegisterClass dst_rc,
-                          RegisterClass src_rc, bit wqm, bit d16_bit=0> : MIMG <
+                          RegisterClass src_rc,
+                          bit wqm,
+                          bit d16_bit=0,
+                          string dns=""> : MIMG <
   (outs dst_rc:$vdata),
   (ins src_rc:$vaddr, SReg_256:$srsrc, SReg_128:$ssamp,
        dmask:$dmask, unorm:$unorm, GLC:$glc, slc:$slc,
@@ -305,49 +308,37 @@ class MIMG_Gather_Helper <bits<7> op, st
   let WQM = wqm;
   let D16 = d16;
 
-  let isAsmParserOnly = 1; // TBD: fix it later
+  let DecoderNamespace = dns;
+  let isAsmParserOnly = !if(!eq(dns,""), 1, 0);
 }
 
 
-multiclass MIMG_Gather_Src_Helper_Helper <bits<7> op, string asm,
+multiclass MIMG_Gather_Src_Helper <bits<7> op, string asm,
                                     RegisterClass dst_rc,
-                                    int channels, bit wqm,
-                                    bit d16_bit, string suffix> {
-  def _V1 # suffix : MIMG_Gather_Helper <op, asm, dst_rc, VGPR_32, wqm, d16_bit>,
-                     MIMG_Mask<asm#"_V1"#suffix, channels>;
-  def _V2 # suffix : MIMG_Gather_Helper <op, asm, dst_rc, VReg_64, wqm, d16_bit>,
-                     MIMG_Mask<asm#"_V2"#suffix, channels>;
-  def _V4 # suffix : MIMG_Gather_Helper <op, asm, dst_rc, VReg_128, wqm, d16_bit>,
-                     MIMG_Mask<asm#"_V4"#suffix, channels>;
-  def _V8 # suffix : MIMG_Gather_Helper <op, asm, dst_rc, VReg_256, wqm, d16_bit>,
-                     MIMG_Mask<asm#"_V8"#suffix, channels>;
-  def _V16 # suffix : MIMG_Gather_Helper <op, asm, dst_rc, VReg_512, wqm, d16_bit>,
-                      MIMG_Mask<asm#"_V16"#suffix, channels>;
+                                    bit wqm, bit d16_bit,
+                                    string prefix,
+                                    string suffix> {
+  def prefix # _V1 # suffix : MIMG_Gather_Helper <op, asm, dst_rc, VGPR_32, wqm, d16_bit, "AMDGPU">;
+  def prefix # _V2 # suffix : MIMG_Gather_Helper <op, asm, dst_rc, VReg_64, wqm, d16_bit>;
+  def prefix # _V4 # suffix : MIMG_Gather_Helper <op, asm, dst_rc, VReg_128, wqm, d16_bit>;
+  def prefix # _V8 # suffix : MIMG_Gather_Helper <op, asm, dst_rc, VReg_256, wqm, d16_bit>;
+  def prefix # _V16 # suffix : MIMG_Gather_Helper <op, asm, dst_rc, VReg_512, wqm, d16_bit>;
 }
 
-multiclass MIMG_Gather_Src_Helper <bits<7> op, string asm,
-                                    RegisterClass dst_rc,
-                                    int channels, bit wqm> {
-  defm : MIMG_Gather_Src_Helper_Helper<op, asm, dst_rc, channels, wqm, 0, "">;
+multiclass MIMG_Gather <bits<7> op, string asm, bit wqm=0> {
+  defm : MIMG_Gather_Src_Helper<op, asm, VReg_128, wqm, 0, "_V4", "">;
 
   let d16 = 1 in {
-    let SubtargetPredicate = HasPackedD16VMem in {
-      defm : MIMG_Gather_Src_Helper_Helper<op, asm, dst_rc, channels, wqm, 1, "_D16">;
+    let AssemblerPredicate = HasPackedD16VMem in {
+      defm : MIMG_Gather_Src_Helper<op, asm, VReg_64, wqm, 1, "_V2", "_D16">;
     } // End HasPackedD16VMem.
 
-    let SubtargetPredicate = HasUnpackedD16VMem, DecoderNamespace = "GFX80_UNPACKED" in {
-      defm : MIMG_Gather_Src_Helper_Helper<op, asm, dst_rc, channels, wqm, 1, "_D16_gfx80">;
+    let AssemblerPredicate = HasUnpackedD16VMem, DecoderNamespace = "GFX80_UNPACKED" in {
+      defm : MIMG_Gather_Src_Helper<op, asm, VReg_128, wqm, 1, "_V4", "_D16_gfx80">;
     } // End HasUnpackedD16VMem.
   } // End d16 = 1.
 }
 
-multiclass MIMG_Gather <bits<7> op, string asm, bit wqm=0> {
-  defm _V1 : MIMG_Gather_Src_Helper<op, asm, VGPR_32, 1, wqm>;
-  defm _V2 : MIMG_Gather_Src_Helper<op, asm, VReg_64, 2, wqm>;
-  defm _V3 : MIMG_Gather_Src_Helper<op, asm, VReg_96, 3, wqm>;
-  defm _V4 : MIMG_Gather_Src_Helper<op, asm, VReg_128, 4, wqm>;
-}
-
 multiclass MIMG_Gather_WQM <bits<7> op, string asm> : MIMG_Gather<op, asm, 1>;
 
 //===----------------------------------------------------------------------===//
@@ -514,6 +505,22 @@ multiclass ImageSampleAltPatterns<SDPatt
   } // End HasPackedD16VMem.
 }
 
+// ImageGather4 patterns.
+multiclass ImageGather4Patterns<SDPatternOperator name, string opcode> {
+  defm : ImageSampleDataPatterns<name, !cast<string>(opcode # _V4), v4f32>;
+}
+
+// ImageGather4 alternative patterns for illegal vector half Types.
+multiclass ImageGather4AltPatterns<SDPatternOperator name, string opcode> {
+  let SubtargetPredicate = HasUnpackedD16VMem in {
+    defm : ImageSampleDataPatterns<name, !cast<string>(opcode # _V4), v4i32, "_D16_gfx80">;
+  } // End HasUnpackedD16VMem.
+
+  let SubtargetPredicate = HasPackedD16VMem in {
+    defm : ImageSampleDataPatterns<name, !cast<string>(opcode # _V2), v2i32, "_D16">;
+  } // End HasPackedD16VMem.
+}
+
 // ImageLoad for amdgcn.
 multiclass ImageLoadPattern<SDPatternOperator name, MIMG opcode, ValueType dt, ValueType vt> {
   def : GCNPat <
@@ -695,36 +702,36 @@ defm : ImageSamplePatterns<int_amdgcn_im
 defm : ImageSamplePatterns<int_amdgcn_image_sample_c_cd_cl_o, "IMAGE_SAMPLE_C_CD_CL_O">;
 
 // Basic gather4.
-defm : ImageSamplePatterns<int_amdgcn_image_gather4,           "IMAGE_GATHER4">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_cl,        "IMAGE_GATHER4_CL">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_l,         "IMAGE_GATHER4_L">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_b,         "IMAGE_GATHER4_B">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_b_cl,      "IMAGE_GATHER4_B_CL">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_lz,        "IMAGE_GATHER4_LZ">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4,           "IMAGE_GATHER4">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_cl,        "IMAGE_GATHER4_CL">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_l,         "IMAGE_GATHER4_L">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_b,         "IMAGE_GATHER4_B">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_b_cl,      "IMAGE_GATHER4_B_CL">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_lz,        "IMAGE_GATHER4_LZ">;
 
 // Gather4 with comparison.
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_c,         "IMAGE_GATHER4_C">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_c_cl,      "IMAGE_GATHER4_C_CL">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_c_l,       "IMAGE_GATHER4_C_L">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_c_b,       "IMAGE_GATHER4_C_B">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_c_b_cl,    "IMAGE_GATHER4_C_B_CL">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_c_lz,      "IMAGE_GATHER4_C_LZ">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_c,         "IMAGE_GATHER4_C">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_c_cl,      "IMAGE_GATHER4_C_CL">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_c_l,       "IMAGE_GATHER4_C_L">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_c_b,       "IMAGE_GATHER4_C_B">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_c_b_cl,    "IMAGE_GATHER4_C_B_CL">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_c_lz,      "IMAGE_GATHER4_C_LZ">;
 
 // Gather4 with offsets.
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_o,         "IMAGE_GATHER4_O">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_cl_o,      "IMAGE_GATHER4_CL_O">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_l_o,       "IMAGE_GATHER4_L_O">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_b_o,       "IMAGE_GATHER4_B_O">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_b_cl_o,    "IMAGE_GATHER4_B_CL_O">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_lz_o,      "IMAGE_GATHER4_LZ_O">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_o,         "IMAGE_GATHER4_O">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_cl_o,      "IMAGE_GATHER4_CL_O">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_l_o,       "IMAGE_GATHER4_L_O">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_b_o,       "IMAGE_GATHER4_B_O">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_b_cl_o,    "IMAGE_GATHER4_B_CL_O">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_lz_o,      "IMAGE_GATHER4_LZ_O">;
 
 // Gather4 with comparison and offsets.
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_c_o,       "IMAGE_GATHER4_C_O">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_c_cl_o,    "IMAGE_GATHER4_C_CL_O">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_c_l_o,     "IMAGE_GATHER4_C_L_O">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_c_b_o,     "IMAGE_GATHER4_C_B_O">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_c_b_cl_o,  "IMAGE_GATHER4_C_B_CL_O">;
-defm : ImageSamplePatterns<int_amdgcn_image_gather4_c_lz_o,    "IMAGE_GATHER4_C_LZ_O">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_c_o,       "IMAGE_GATHER4_C_O">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_c_cl_o,    "IMAGE_GATHER4_C_CL_O">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_c_l_o,     "IMAGE_GATHER4_C_L_O">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_c_b_o,     "IMAGE_GATHER4_C_B_O">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_c_b_cl_o,  "IMAGE_GATHER4_C_B_CL_O">;
+defm : ImageGather4Patterns<int_amdgcn_image_gather4_c_lz_o,    "IMAGE_GATHER4_C_LZ_O">;
 
 // Basic sample alternative.
 defm : ImageSampleAltPatterns<SIImage_sample,           "IMAGE_SAMPLE">;
@@ -775,36 +782,36 @@ defm : ImageSampleAltPatterns<SIImage_sa
 defm : ImageSampleAltPatterns<SIImage_sample_c_cd_cl_o, "IMAGE_SAMPLE_C_CD_CL_O">;
 
 // Basic gather4 alternative.
-defm : ImageSampleAltPatterns<SIImage_gather4,           "IMAGE_GATHER4">;
-defm : ImageSampleAltPatterns<SIImage_gather4_cl,        "IMAGE_GATHER4_CL">;
-defm : ImageSampleAltPatterns<SIImage_gather4_l,         "IMAGE_GATHER4_L">;
-defm : ImageSampleAltPatterns<SIImage_gather4_b,         "IMAGE_GATHER4_B">;
-defm : ImageSampleAltPatterns<SIImage_gather4_b_cl,      "IMAGE_GATHER4_B_CL">;
-defm : ImageSampleAltPatterns<SIImage_gather4_lz,        "IMAGE_GATHER4_LZ">;
+defm : ImageGather4AltPatterns<SIImage_gather4,           "IMAGE_GATHER4">;
+defm : ImageGather4AltPatterns<SIImage_gather4_cl,        "IMAGE_GATHER4_CL">;
+defm : ImageGather4AltPatterns<SIImage_gather4_l,         "IMAGE_GATHER4_L">;
+defm : ImageGather4AltPatterns<SIImage_gather4_b,         "IMAGE_GATHER4_B">;
+defm : ImageGather4AltPatterns<SIImage_gather4_b_cl,      "IMAGE_GATHER4_B_CL">;
+defm : ImageGather4AltPatterns<SIImage_gather4_lz,        "IMAGE_GATHER4_LZ">;
 
 // Gather4 with comparison alternative.
-defm : ImageSampleAltPatterns<SIImage_gather4_c,         "IMAGE_GATHER4_C">;
-defm : ImageSampleAltPatterns<SIImage_gather4_c_cl,      "IMAGE_GATHER4_C_CL">;
-defm : ImageSampleAltPatterns<SIImage_gather4_c_l,       "IMAGE_GATHER4_C_L">;
-defm : ImageSampleAltPatterns<SIImage_gather4_c_b,       "IMAGE_GATHER4_C_B">;
-defm : ImageSampleAltPatterns<SIImage_gather4_c_b_cl,    "IMAGE_GATHER4_C_B_CL">;
-defm : ImageSampleAltPatterns<SIImage_gather4_c_lz,      "IMAGE_GATHER4_C_LZ">;
+defm : ImageGather4AltPatterns<SIImage_gather4_c,         "IMAGE_GATHER4_C">;
+defm : ImageGather4AltPatterns<SIImage_gather4_c_cl,      "IMAGE_GATHER4_C_CL">;
+defm : ImageGather4AltPatterns<SIImage_gather4_c_l,       "IMAGE_GATHER4_C_L">;
+defm : ImageGather4AltPatterns<SIImage_gather4_c_b,       "IMAGE_GATHER4_C_B">;
+defm : ImageGather4AltPatterns<SIImage_gather4_c_b_cl,    "IMAGE_GATHER4_C_B_CL">;
+defm : ImageGather4AltPatterns<SIImage_gather4_c_lz,      "IMAGE_GATHER4_C_LZ">;
 
 // Gather4 with offsets alternative.
-defm : ImageSampleAltPatterns<SIImage_gather4_o,         "IMAGE_GATHER4_O">;
-defm : ImageSampleAltPatterns<SIImage_gather4_cl_o,      "IMAGE_GATHER4_CL_O">;
-defm : ImageSampleAltPatterns<SIImage_gather4_l_o,       "IMAGE_GATHER4_L_O">;
-defm : ImageSampleAltPatterns<SIImage_gather4_b_o,       "IMAGE_GATHER4_B_O">;
-defm : ImageSampleAltPatterns<SIImage_gather4_b_cl_o,    "IMAGE_GATHER4_B_CL_O">;
-defm : ImageSampleAltPatterns<SIImage_gather4_lz_o,      "IMAGE_GATHER4_LZ_O">;
+defm : ImageGather4AltPatterns<SIImage_gather4_o,         "IMAGE_GATHER4_O">;
+defm : ImageGather4AltPatterns<SIImage_gather4_cl_o,      "IMAGE_GATHER4_CL_O">;
+defm : ImageGather4AltPatterns<SIImage_gather4_l_o,       "IMAGE_GATHER4_L_O">;
+defm : ImageGather4AltPatterns<SIImage_gather4_b_o,       "IMAGE_GATHER4_B_O">;
+defm : ImageGather4AltPatterns<SIImage_gather4_b_cl_o,    "IMAGE_GATHER4_B_CL_O">;
+defm : ImageGather4AltPatterns<SIImage_gather4_lz_o,      "IMAGE_GATHER4_LZ_O">;
 
 // Gather4 with comparison and offsets alternative.
-defm : ImageSampleAltPatterns<SIImage_gather4_c_o,       "IMAGE_GATHER4_C_O">;
-defm : ImageSampleAltPatterns<SIImage_gather4_c_cl_o,    "IMAGE_GATHER4_C_CL_O">;
-defm : ImageSampleAltPatterns<SIImage_gather4_c_l_o,     "IMAGE_GATHER4_C_L_O">;
-defm : ImageSampleAltPatterns<SIImage_gather4_c_b_o,     "IMAGE_GATHER4_C_B_O">;
-defm : ImageSampleAltPatterns<SIImage_gather4_c_b_cl_o,  "IMAGE_GATHER4_C_B_CL_O">;
-defm : ImageSampleAltPatterns<SIImage_gather4_c_lz_o,    "IMAGE_GATHER4_C_LZ_O">;
+defm : ImageGather4AltPatterns<SIImage_gather4_c_o,       "IMAGE_GATHER4_C_O">;
+defm : ImageGather4AltPatterns<SIImage_gather4_c_cl_o,    "IMAGE_GATHER4_C_CL_O">;
+defm : ImageGather4AltPatterns<SIImage_gather4_c_l_o,     "IMAGE_GATHER4_C_L_O">;
+defm : ImageGather4AltPatterns<SIImage_gather4_c_b_o,     "IMAGE_GATHER4_C_B_O">;
+defm : ImageGather4AltPatterns<SIImage_gather4_c_b_cl_o,  "IMAGE_GATHER4_C_B_CL_O">;
+defm : ImageGather4AltPatterns<SIImage_gather4_c_lz_o,    "IMAGE_GATHER4_C_LZ_O">;
 
 defm : ImageSamplePatterns<int_amdgcn_image_getlod, "IMAGE_GET_LOD">;
 

Modified: llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgcn.image.gather4.d16.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgcn.image.gather4.d16.ll?rev=327278&r1=327277&r2=327278&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgcn.image.gather4.d16.ll (original)
+++ llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgcn.image.gather4.d16.ll Mon Mar 12 08:03:34 2018
@@ -3,39 +3,6 @@
 ; RUN: llc < %s -march=amdgcn -mcpu=gfx900 -verify-machineinstrs | FileCheck -check-prefix=GCN -check-prefix=PACKED -check-prefix=GFX9 %s
 
 
-; GCN-LABEL: {{^}}image_gather4_f16:
-; GCN: image_gather4 v[[HALF:[0-9]+]], v[{{[0-9]+:[0-9]+}}], s[{{[0-9]+:[0-9]+}}], s[{{[0-9]+:[0-9]+}}] dmask:0x1 d16
-
-; UNPACKED: flat_store_short v[{{[0-9]+:[0-9]+}}], v[[HALF]]
-
-; GFX81: flat_store_short v[{{[0-9]+:[0-9]+}}], v[[HALF]]
-
-; GFX9: global_store_short v[{{[0-9]+:[0-9]+}}], v[[HALF]], off
-define amdgpu_kernel void @image_gather4_f16(<4 x float> %coords, <8 x i32> inreg %rsrc, <4 x i32> inreg %sample, half addrspace(1)* %out) {
-main_body:
-  %tex = call half @llvm.amdgcn.image.gather4.f16.v4f32.v8i32(<4 x float> %coords, <8 x i32> %rsrc, <4 x i32> %sample, i32 1, i1 0, i1 0, i1 0, i1 0, i1 0)
-  store half %tex, half addrspace(1)* %out
-  ret void
-}
-
-; GCN-LABEL: {{^}}image_gather4_v2f16:
-; UNPACKED: image_gather4 v{{\[}}{{[0-9]+}}:[[HI:[0-9]+]]{{\]}}, v[{{[0-9]+:[0-9]+}}], s[{{[0-9]+:[0-9]+}}], s[{{[0-9]+:[0-9]+}}] dmask:0x3 d16
-; UNPACKED: flat_store_short v[{{[0-9]+:[0-9]+}}], v[[HI]]
-
-; PACKED: image_gather4 v[[DATA:[0-9]+]], v[{{[0-9]+:[0-9]+}}], s[{{[0-9]+:[0-9]+}}], s[{{[0-9]+:[0-9]+}}] dmask:0x3 d16
-
-; GFX81: v_lshrrev_b32_e32 v[[HI:[0-9]+]], 16, v[[DATA]]
-; GFX81: flat_store_short v[{{[0-9]+:[0-9]+}}], v[[HI]]
-
-; GFX9: global_store_short_d16_hi v[{{[0-9]+:[0-9]+}}], v[[DATA]], off
-define amdgpu_kernel void @image_gather4_v2f16(<4 x float> %coords, <8 x i32> inreg %rsrc, <4 x i32> inreg %sample, half addrspace(1)* %out) {
-main_body:
-  %tex = call <2 x half> @llvm.amdgcn.image.gather4.v2f16.v4f32.v8i32(<4 x float> %coords, <8 x i32> %rsrc, <4 x i32> %sample, i32 3, i1 0, i1 0, i1 0, i1 0, i1 0)
-  %elt = extractelement <2 x half> %tex, i32 1
-  store half %elt, half addrspace(1)* %out
-  ret void
-}
-
 ; GCN-LABEL: {{^}}image_gather4_v4f16:
 ; UNPACKED: image_gather4 v{{\[}}{{[0-9]+}}:[[HI:[0-9]+]]{{\]}}, v[{{[0-9]+:[0-9]+}}], s[{{[0-9]+:[0-9]+}}], s[{{[0-9]+:[0-9]+}}] dmask:0xf d16
 ; UNPACKED: flat_store_short v[{{[0-9]+:[0-9]+}}], v[[HI]]
@@ -126,8 +93,6 @@ main_body:
   ret void
 }
 
-declare half @llvm.amdgcn.image.gather4.f16.v4f32.v8i32(<4 x float>, <8 x i32>, <4 x i32>, i32, i1, i1, i1, i1, i1)
-declare <2 x half> @llvm.amdgcn.image.gather4.v2f16.v4f32.v8i32(<4 x float>, <8 x i32>, <4 x i32>, i32, i1, i1, i1, i1, i1)
 declare <4 x half> @llvm.amdgcn.image.gather4.v4f16.v4f32.v8i32(<4 x float>, <8 x i32>, <4 x i32>, i32, i1, i1, i1, i1, i1)
 
 

Modified: llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgcn.image.gather4.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgcn.image.gather4.ll?rev=327278&r1=327277&r2=327278&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgcn.image.gather4.ll (original)
+++ llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgcn.image.gather4.ll Mon Mar 12 08:03:34 2018
@@ -320,24 +320,6 @@ main_body:
   ret void
 }
 
-; GCN-LABEL: {{^}}gather4_f32:
-; GCN: image_gather4 {{v[0-9]+}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0x1 da
-define amdgpu_kernel void @gather4_f32(float addrspace(1)* %out) {
-main_body:
-  %r = call float @llvm.amdgcn.image.gather4.f32.v4f32.v8i32(<4 x float> undef, <8 x i32> undef, <4 x i32> undef, i32 1, i1 0, i1 0, i1 0, i1 0, i1 1)
-  store float %r, float addrspace(1)* %out
-  ret void
-}
-
-; GCN-LABEL: {{^}}gather4_v2f32:
-; GCN: image_gather4 {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0x3 da
-define amdgpu_kernel void @gather4_v2f32(<2 x float> addrspace(1)* %out) {
-main_body:
-  %r = call <2 x float> @llvm.amdgcn.image.gather4.v2f32.v4f32.v8i32(<4 x float> undef, <8 x i32> undef, <4 x i32> undef, i32 3, i1 0, i1 0, i1 0, i1 0, i1 1)
-  store <2 x float> %r, <2 x float> addrspace(1)* %out
-  ret void
-}
-
 declare <4 x float> @llvm.amdgcn.image.gather4.v4f32.v2f32.v8i32(<2 x float>, <8 x i32>, <4 x i32>, i32, i1, i1, i1, i1, i1) #0
 declare <4 x float> @llvm.amdgcn.image.gather4.v4f32.v4f32.v8i32(<4 x float>, <8 x i32>, <4 x i32>, i32, i1, i1, i1, i1, i1) #0
 declare <4 x float> @llvm.amdgcn.image.gather4.cl.v4f32.v4f32.v8i32(<4 x float>, <8 x i32>, <4 x i32>, i32, i1, i1, i1, i1, i1) #0
@@ -377,7 +359,4 @@ declare <4 x float> @llvm.amdgcn.image.g
 declare <4 x float> @llvm.amdgcn.image.gather4.c.lz.o.v4f32.v4f32.v8i32(<4 x float>, <8 x i32>, <4 x i32>, i32, i1, i1, i1, i1, i1) #0
 declare <4 x float> @llvm.amdgcn.image.gather4.c.lz.o.v4f32.v8f32.v8i32(<8 x float>, <8 x i32>, <4 x i32>, i32, i1, i1, i1, i1, i1) #0
 
-declare float @llvm.amdgcn.image.gather4.f32.v4f32.v8i32(<4 x float>, <8 x i32>, <4 x i32>, i32, i1, i1, i1, i1, i1) #0
-declare <2 x float> @llvm.amdgcn.image.gather4.v2f32.v4f32.v8i32(<4 x float>, <8 x i32>, <4 x i32>, i32, i1, i1, i1, i1, i1) #0
-
 attributes #0 = { nounwind readnone }

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=327278&r1=327277&r2=327278&view=diff
==============================================================================
--- llvm/trunk/test/MC/AMDGPU/gfx7_asm_all.s (original)
+++ llvm/trunk/test/MC/AMDGPU/gfx7_asm_all.s Mon Mar 12 08:03:34 2018
@@ -5076,2020 +5076,1084 @@ image_sample_c_lz v5, v[1:4], s[8:15], s
 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_gather4 v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x00,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4 v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4 v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x00,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4 v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4 v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x00,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4 v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4 v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x00,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4 v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x00,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4 v5, v1, s[8:15], s[12:15] dmask:0x2
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x00,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x00,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x00,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x00,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4 v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x00,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4 v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x00,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x01,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x02,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4 v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x00,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_cl v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_cl v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_cl v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_cl v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_cl v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_cl v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x04,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_cl v5, v1, s[8:15], s[12:15] dmask:0x2
+image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x04,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x05,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x06,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_l v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_l v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_l v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_l v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_l v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_l v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x10,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_l v5, v1, s[8:15], s[12:15] dmask:0x2
+image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x10,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_l v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x11,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x12,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_b v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_b v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_b v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_b v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_b v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_b v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x14,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_b v5, v1, s[8:15], s[12:15] dmask:0x2
+image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x14,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_b v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x15,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x16,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x18,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_b_cl v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x18,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_b_cl v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_b_cl v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x18,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_b_cl v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_b_cl v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x18,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_b_cl v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x18,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_b_cl v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x18,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x18,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x18,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x18,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x18,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x19,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x1a,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x18,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x1c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_lz v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x1c,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_lz v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_lz v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x1c,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_lz v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_lz v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x1c,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_lz v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x1c,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_lz v5, v1, s[8:15], s[12:15] dmask:0x2
+image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x1c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x1c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x1c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x1c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x1c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x1c,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x1d,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x1e,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x1c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x20,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_c v5, v1, s[8:15], s[12:15] dmask:0x2
+image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x20,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x21,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x22,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x24,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_cl v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x24,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_cl v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_cl v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x24,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_cl v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_cl v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x24,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_cl v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x24,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_c_cl v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x24,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x24,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x24,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x24,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x24,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x25,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x26,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x24,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x30,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_l v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x30,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_l v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_l v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x30,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_l v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_l v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x30,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_l v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x30,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_c_l v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_l v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_l v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x30,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_l v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x30,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x30,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x30,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x30,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x31,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x32,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x30,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x34,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x34,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_b v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x34,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_b v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_b v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x34,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_b v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x34,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_c_b v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_b v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_b v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x34,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_b v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x34,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x34,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x34,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x34,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x35,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x36,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x34,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x38,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b_cl v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x38,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_b_cl v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b_cl v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x38,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_b_cl v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_b_cl v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x38,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_b_cl v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x38,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_c_b_cl v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x38,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x38,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x38,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x38,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x38,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x39,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x3a,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x38,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_lz v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_lz v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_lz v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_lz v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_lz v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_lz v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x3c,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_c_lz v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x3c,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x3d,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x3e,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_o v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x40,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_o v5, v1, s[8:15], s[12:15] dmask:0x2
+image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x40,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x41,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x42,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x44,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_cl_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x44,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_cl_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_cl_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x44,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_cl_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_cl_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x44,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_cl_o v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x44,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_cl_o v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x44,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x44,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x44,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x44,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x44,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x45,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x46,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x44,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x50,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_l_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x50,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_l_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_l_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x50,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_l_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_l_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x50,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_l_o v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x50,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_l_o v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x50,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x50,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x50,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x50,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x50,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x51,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x52,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x50,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x54,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_b_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x54,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_b_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_b_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x54,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_b_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_b_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x54,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_b_o v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x54,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_b_o v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x54,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x54,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x54,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x54,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x54,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x55,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x56,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x54,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x58,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_b_cl_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x58,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_b_cl_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_b_cl_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x58,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_b_cl_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_b_cl_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x58,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_b_cl_o v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x58,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x58,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x58,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x58,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x58,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x58,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x59,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x5a,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x58,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_lz_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_lz_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_lz_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_lz_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_lz_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_lz_o v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x5c,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_lz_o v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x5c,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x5d,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x5e,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x60,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x60,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x60,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x60,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_o v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x60,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_c_o v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x60,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x60,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x60,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x60,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x60,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x61,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x62,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x60,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x64,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_cl_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x64,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_cl_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_cl_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x64,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_cl_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_cl_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x64,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_cl_o v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x64,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_c_cl_o v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x64,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x64,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x64,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x64,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x64,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x65,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x66,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x64,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x70,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_l_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x70,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_l_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_l_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x70,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_l_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_l_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x70,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_l_o v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x70,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_c_l_o v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x70,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x70,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x70,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x70,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x70,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x71,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x72,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x70,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x74,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x74,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_b_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x74,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_b_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_b_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x74,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_b_o v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x74,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_c_b_o v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x74,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x74,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x74,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x74,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x74,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x75,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x76,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x74,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x78,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b_cl_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x78,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_b_cl_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b_cl_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x78,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_b_cl_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_b_cl_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x78,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_b_cl_o v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x78,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x78,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x78,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x78,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x78,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x78,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x79,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x7a,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x78,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x7c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_lz_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x7c,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_lz_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_lz_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x7c,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_lz_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_lz_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x7c,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_lz_o v5, v1, s[96:103], s[12:15] dmask:0x1
+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 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[100:103] dmask:0x1
+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 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
-// CHECK: [0x00,0x01,0x7c,0xf1,0x01,0x05,0xc2,0x03]
-
-image_gather4_c_lz_o v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x7c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x7c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x7c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x7c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x7c,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x7d,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x7e,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x7c,0xf1,0x01,0x05,0x62,0x00]
 
 image_get_lod v5, v1, s[8:15], s[12:15] dmask:0x1

Modified: llvm/trunk/test/MC/AMDGPU/gfx8_asm_all.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AMDGPU/gfx8_asm_all.s?rev=327278&r1=327277&r2=327278&view=diff
==============================================================================
--- llvm/trunk/test/MC/AMDGPU/gfx8_asm_all.s (original)
+++ llvm/trunk/test/MC/AMDGPU/gfx8_asm_all.s Mon Mar 12 08:03:34 2018
@@ -5001,2022 +5001,1302 @@ image_sample_c_lz v5, v[1:4], s[8:15], s
 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_gather4 v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x00,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4 v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4 v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x00,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4 v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4 v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x00,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4 v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4 v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x00,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4 v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4 v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x00,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4 v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4 v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x00,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4 v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x00,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x00,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x00,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x00,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x00,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4 v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x00,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4 v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x00,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x01,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4 v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x02,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4 v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x00,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x00,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_cl v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_cl v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_cl v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_cl v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_cl v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_cl v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_cl v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_cl v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_cl v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_cl v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x04,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x05,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x06,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x04,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_l v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_l v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_l v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_l v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_l v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_l v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_l v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_l v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_l v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_l v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x10,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_l v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x11,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x12,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x10,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_b v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_b v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_b v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_b v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_b v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_b v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_b v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_b v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_b v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_b v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x14,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_b v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x15,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x16,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x14,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x18,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_b_cl v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x18,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_b_cl v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_b_cl v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x18,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_b_cl v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_b_cl v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x18,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_b_cl v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_b_cl v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x18,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_b_cl v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_b_cl v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x18,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_b_cl v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x18,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x18,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x18,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x18,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x18,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x18,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x19,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x1a,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x18,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x18,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x1c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_lz v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x1c,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_lz v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_lz v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x1c,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_lz v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_lz v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x1c,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_lz v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_lz v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x1c,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_lz v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_lz v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x1c,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_lz v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x1c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x1c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x1c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x1c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x1c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x1c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x1c,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x1d,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x1e,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x1c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x1c,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_c v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_c v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_c v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_c v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x20,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x21,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x22,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x20,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_c_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x24,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_cl v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x24,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_cl v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_cl v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x24,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_cl v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_cl v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x24,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_cl v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_c_cl v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x24,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_c_cl v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_c_cl v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x24,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_c_cl v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x24,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x24,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x24,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x24,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x24,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x24,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x25,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x26,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x24,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x24,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_c_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x30,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_l v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x30,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_l v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_l v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x30,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_l v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_l v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x30,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_l v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_c_l v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x30,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_c_l v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_c_l v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x30,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_c_l v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_l v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_l v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x30,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_l v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x30,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x30,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x30,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x30,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x30,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x31,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x32,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x30,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_l v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x30,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_c_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x34,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x34,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_b v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x34,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_b v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_b v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x34,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_b v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_c_b v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x34,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_c_b v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_c_b v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x34,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_c_b v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_b v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_b v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x34,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_b v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x34,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x34,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x34,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x34,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x34,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x35,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x36,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x34,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x34,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_c_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x38,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b_cl v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x38,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_b_cl v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b_cl v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x38,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_b_cl v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_b_cl v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x38,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_b_cl v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_c_b_cl v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x38,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_c_b_cl v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_c_b_cl v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x38,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_c_b_cl v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x38,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x38,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x38,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x38,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x38,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x38,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x39,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x3a,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x38,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b_cl v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x38,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_c_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_lz v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_lz v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_lz v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_lz v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_lz v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_lz v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_c_lz v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_c_lz v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_c_lz v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_c_lz v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x3c,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x3d,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x3e,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_lz v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x3c,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_o v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_o v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_o v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_o v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_o v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x40,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x41,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x42,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x40,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x44,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_cl_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x44,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_cl_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_cl_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x44,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_cl_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_cl_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x44,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_cl_o v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_cl_o v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x44,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_cl_o v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_cl_o v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x44,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_cl_o v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x44,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x44,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x44,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x44,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x44,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x44,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x45,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x46,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x44,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x44,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x50,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_l_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x50,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_l_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_l_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x50,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_l_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_l_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x50,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_l_o v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_l_o v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x50,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_l_o v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_l_o v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x50,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_l_o v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x50,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x50,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x50,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x50,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x50,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x50,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x51,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x52,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x50,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x50,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x54,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_b_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x54,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_b_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_b_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x54,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_b_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_b_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x54,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_b_o v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_b_o v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x54,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_b_o v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_b_o v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x54,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_b_o v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x54,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x54,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x54,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x54,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x54,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x54,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x55,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x56,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x54,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x54,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x58,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_b_cl_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x58,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_b_cl_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_b_cl_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x58,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_b_cl_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_b_cl_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x58,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_b_cl_o v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_b_cl_o v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x58,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_b_cl_o v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_b_cl_o v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x58,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_b_cl_o v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x58,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x58,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x58,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x58,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x58,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x58,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x59,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x5a,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x58,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x58,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_lz_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_lz_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_lz_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_lz_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_lz_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_lz_o v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_lz_o v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_lz_o v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_lz_o v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_lz_o v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x5c,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x5d,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x5e,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x5c,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_c_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x60,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x60,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x60,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x60,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_o v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_c_o v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x60,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_c_o v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_c_o v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x60,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_c_o v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x60,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x60,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x60,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x60,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x60,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x60,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x61,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x62,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x60,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x60,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_c_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x64,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_cl_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x64,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_cl_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_cl_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x64,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_cl_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_cl_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x64,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_cl_o v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_c_cl_o v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x64,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_c_cl_o v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_c_cl_o v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x64,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_c_cl_o v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x64,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x64,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x64,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x64,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x64,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x64,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x65,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x66,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x64,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x64,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_c_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x70,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_l_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x70,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_l_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_l_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x70,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_l_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_l_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x70,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_l_o v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_c_l_o v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x70,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_c_l_o v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_c_l_o v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x70,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_c_l_o v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x70,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x70,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x70,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x70,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x70,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x70,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x71,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x72,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_l_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x70,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_l_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x70,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_c_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x74,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x74,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_b_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x74,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_b_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_b_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x74,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_b_o v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_c_b_o v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x74,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_c_b_o v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_c_b_o v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x74,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_c_b_o v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x74,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x74,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x74,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x74,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x74,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x74,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x75,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x76,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x74,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x74,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x78,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b_cl_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x78,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_b_cl_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b_cl_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x78,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_b_cl_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_b_cl_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x78,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_b_cl_o v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_c_b_cl_o v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x78,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x78,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_c_b_cl_o v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x78,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x78,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x78,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x78,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x78,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x78,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x79,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x7a,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_b_cl_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x78,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_b_cl_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x78,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_c_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x7c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz_o v252, v1, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_lz_o v[252:255], v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x7c,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_lz_o v5, v255, s[8:15], s[12:15] dmask:0x1
+image_gather4_c_lz_o v[5:8], v255, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x7c,0xf1,0xff,0x05,0x62,0x00]
 
-image_gather4_c_lz_o v5, v1, s[12:19], s[12:15] dmask:0x1
+image_gather4_c_lz_o v[5:8], v1, s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x7c,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_lz_o v5, v1, s[92:99], s[12:15] dmask:0x1
+image_gather4_c_lz_o v[5:8], v1, s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x7c,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_c_lz_o v5, v1, s[8:15], s[16:19] dmask:0x1
+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 v5, v1, s[8:15], s[96:99] dmask:0x1
+image_gather4_c_lz_o v[5:8], v1, s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x7c,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_c_lz_o v5, v1, s[8:15], ttmp[8:11] dmask:0x1
+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 v5, v1, s[8:15], s[12:15] dmask:0x2
+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]
 
-image_gather4_c_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v5, v1, s[8:15], s[12:15] dmask:0x4
+image_gather4_c_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x7c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v[5:7], v1, s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v5, v1, s[8:15], s[12:15] dmask:0x8
+image_gather4_c_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x7c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v[5:7], v1, s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v[5:7], v1, s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v[5:7], v1, s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v5, v1, s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x7c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x7c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x7c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x7c,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz_o v[5:6], v1, s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x7d,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x7e,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz_o v5, v1, s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x7c,0xf1,0x01,0x05,0x62,0x00]
 
+image_gather4_c_lz_o v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x7c,0xf1,0x01,0x05,0x62,0x80]
+
 image_get_lod v5, v1, s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x80,0xf1,0x01,0x05,0x62,0x00]
 

Modified: llvm/trunk/test/MC/AMDGPU/gfx9_asm_all.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AMDGPU/gfx9_asm_all.s?rev=327278&r1=327277&r2=327278&view=diff
==============================================================================
--- llvm/trunk/test/MC/AMDGPU/gfx9_asm_all.s (original)
+++ llvm/trunk/test/MC/AMDGPU/gfx9_asm_all.s Mon Mar 12 08:03:34 2018
@@ -4140,573 +4140,342 @@ image_sample_lz_o v5, v[1:4], s[8:15], s
 image_sample_lz_o v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0xdc,0xf0,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1
+image_gather4_cl v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v252, v[1:4], s[8:15], s[12:15] dmask:0x1
+image_gather4_cl v[252:255], v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_cl v5, v[252:255], s[8:15], s[12:15] dmask:0x1
+image_gather4_cl v[5:8], v[252:255], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0xfc,0x05,0x62,0x00]
 
-image_gather4_cl v5, v[1:4], s[12:19], s[12:15] dmask:0x1
+image_gather4_cl v[5:8], v[1:4], s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_cl v5, v[1:4], s[92:99], s[12:15] dmask:0x1
+image_gather4_cl v[5:8], v[1:4], s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_cl v5, v[1:4], s[8:15], s[16:19] dmask:0x1
+image_gather4_cl v[5:8], v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0x01,0x05,0x82,0x00]
 
-image_gather4_cl v5, v[1:4], s[8:15], s[96:99] dmask:0x1
+image_gather4_cl v[5:8], v[1:4], s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x04,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x2
+image_gather4_cl v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x4
+image_gather4_cl v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:7], v[1:4], s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x8
+image_gather4_cl v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:6], v[1:4], s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:6], v[1:4], s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x04,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_cl v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_cl v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_cl v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x04,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x05,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_cl v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x06,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_cl v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+image_gather4_cl v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x04,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v5, v[1:4], s[8:15], s[12:15] dmask:0x1
+image_gather4_cl v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x04,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_l v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v252, v[1:4], s[8:15], s[12:15] dmask:0x1
+image_gather4_l v[252:255], v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_l v5, v[252:255], s[8:15], s[12:15] dmask:0x1
+image_gather4_l v[5:8], v[252:255], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0xfc,0x05,0x62,0x00]
 
-image_gather4_l v5, v[1:4], s[12:19], s[12:15] dmask:0x1
+image_gather4_l v[5:8], v[1:4], s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_l v5, v[1:4], s[92:99], s[12:15] dmask:0x1
+image_gather4_l v[5:8], v[1:4], s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_l v5, v[1:4], s[8:15], s[16:19] dmask:0x1
+image_gather4_l v[5:8], v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0x01,0x05,0x82,0x00]
 
-image_gather4_l v5, v[1:4], s[8:15], s[96:99] dmask:0x1
+image_gather4_l v[5:8], v[1:4], s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x10,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_l v5, v[1:4], s[8:15], s[12:15] dmask:0x2
+image_gather4_l v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v5, v[1:4], s[8:15], s[12:15] dmask:0x4
+image_gather4_l v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:7], v[1:4], s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v5, v[1:4], s[8:15], s[12:15] dmask:0x8
+image_gather4_l v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:6], v[1:4], s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:6], v[1:4], s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v5, v[1:4], s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x10,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_l v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_l v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_l v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x10,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_l v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x11,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_l v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_l v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x12,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_l v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+image_gather4_l v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x10,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v5, v[1:4], s[8:15], s[12:15] dmask:0x1
+image_gather4_l v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x10,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_b v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v252, v[1:4], s[8:15], s[12:15] dmask:0x1
+image_gather4_b v[252:255], v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_b v5, v[252:255], s[8:15], s[12:15] dmask:0x1
+image_gather4_b v[5:8], v[252:255], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0xfc,0x05,0x62,0x00]
 
-image_gather4_b v5, v[1:4], s[12:19], s[12:15] dmask:0x1
+image_gather4_b v[5:8], v[1:4], s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_b v5, v[1:4], s[92:99], s[12:15] dmask:0x1
+image_gather4_b v[5:8], v[1:4], s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_b v5, v[1:4], s[8:15], s[16:19] dmask:0x1
+image_gather4_b v[5:8], v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0x01,0x05,0x82,0x00]
 
-image_gather4_b v5, v[1:4], s[8:15], s[96:99] dmask:0x1
+image_gather4_b v[5:8], v[1:4], s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x14,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_b v5, v[1:4], s[8:15], s[12:15] dmask:0x2
+image_gather4_b v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v5, v[1:4], s[8:15], s[12:15] dmask:0x4
+image_gather4_b v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:7], v[1:4], s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v5, v[1:4], s[8:15], s[12:15] dmask:0x8
+image_gather4_b v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:6], v[1:4], s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:6], v[1:4], s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v5, v[1:4], s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x14,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_b v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_b v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_b v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x14,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_b v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x15,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_b v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_b v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x16,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_b v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+image_gather4_b v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x14,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v5, v[1:4], s[8:15], s[12:15] dmask:0x1
+image_gather4_b v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x14,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_c v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v252, v[1:4], s[8:15], s[12:15] dmask:0x1
+image_gather4_c v[252:255], v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c v5, v[252:255], s[8:15], s[12:15] dmask:0x1
+image_gather4_c v[5:8], v[252:255], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0xfc,0x05,0x62,0x00]
 
-image_gather4_c v5, v[1:4], s[12:19], s[12:15] dmask:0x1
+image_gather4_c v[5:8], v[1:4], s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c v5, v[1:4], s[92:99], s[12:15] dmask:0x1
+image_gather4_c v[5:8], v[1:4], s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_c v5, v[1:4], s[8:15], s[16:19] dmask:0x1
+image_gather4_c v[5:8], v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0x01,0x05,0x82,0x00]
 
-image_gather4_c v5, v[1:4], s[8:15], s[96:99] dmask:0x1
+image_gather4_c v[5:8], v[1:4], s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x20,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_c v5, v[1:4], s[8:15], s[12:15] dmask:0x2
+image_gather4_c v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v5, v[1:4], s[8:15], s[12:15] dmask:0x4
+image_gather4_c v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:7], v[1:4], s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v5, v[1:4], s[8:15], s[12:15] dmask:0x8
+image_gather4_c v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:6], v[1:4], s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:6], v[1:4], s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v5, v[1:4], s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x20,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x20,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x21,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x22,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x20,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x1
+image_gather4_c v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x20,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_c_lz v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v252, v[1:4], s[8:15], s[12:15] dmask:0x1
+image_gather4_c_lz v[252:255], v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_c_lz v5, v[252:255], s[8:15], s[12:15] dmask:0x1
+image_gather4_c_lz v[5:8], v[252:255], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0xfc,0x05,0x62,0x00]
 
-image_gather4_c_lz v5, v[1:4], s[12:19], s[12:15] dmask:0x1
+image_gather4_c_lz v[5:8], v[1:4], s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_c_lz v5, v[1:4], s[92:99], s[12:15] dmask:0x1
+image_gather4_c_lz v[5:8], v[1:4], s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_c_lz v5, v[1:4], s[8:15], s[16:19] dmask:0x1
+image_gather4_c_lz v[5:8], v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0x01,0x05,0x82,0x00]
 
-image_gather4_c_lz v5, v[1:4], s[8:15], s[96:99] dmask:0x1
+image_gather4_c_lz v[5:8], v[1:4], s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x3c,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_c_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x2
+image_gather4_c_lz v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x4
+image_gather4_c_lz v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:7], v[1:4], s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x8
+image_gather4_c_lz v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:6], v[1:4], s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:6], v[1:4], s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x3c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_c_lz v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_c_lz v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_c_lz v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x3c,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x3d,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_c_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_c_lz v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x3e,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_c_lz v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+image_gather4_c_lz v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x3c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v5, v[1:4], s[8:15], s[12:15] dmask:0x1
+image_gather4_c_lz v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x3c,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_o v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v252, v[1:4], s[8:15], s[12:15] dmask:0x1
+image_gather4_o v[252:255], v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_o v5, v[252:255], s[8:15], s[12:15] dmask:0x1
+image_gather4_o v[5:8], v[252:255], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0xfc,0x05,0x62,0x00]
 
-image_gather4_o v5, v[1:4], s[12:19], s[12:15] dmask:0x1
+image_gather4_o v[5:8], v[1:4], s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_o v5, v[1:4], s[92:99], s[12:15] dmask:0x1
+image_gather4_o v[5:8], v[1:4], s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_o v5, v[1:4], s[8:15], s[16:19] dmask:0x1
+image_gather4_o v[5:8], v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0x01,0x05,0x82,0x00]
 
-image_gather4_o v5, v[1:4], s[8:15], s[96:99] dmask:0x1
+image_gather4_o v[5:8], v[1:4], s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x40,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_o v5, v[1:4], s[8:15], s[12:15] dmask:0x2
+image_gather4_o v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v5, v[1:4], s[8:15], s[12:15] dmask:0x4
+image_gather4_o v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:7], v[1:4], s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v5, v[1:4], s[8:15], s[12:15] dmask:0x8
+image_gather4_o v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:6], v[1:4], s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:6], v[1:4], s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v5, v[1:4], s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x40,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_o v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_o v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_o v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x40,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_o v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x41,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_o v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_o v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x42,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_o v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+image_gather4_o v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x40,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v5, v[1:4], s[8:15], s[12:15] dmask:0x1
+image_gather4_o v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x40,0xf1,0x01,0x05,0x62,0x80]
+
+image_gather4_lz_o v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v252, v[1:4], s[8:15], s[12:15] dmask:0x1
+image_gather4_lz_o v[252:255], v[1:4], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0x01,0xfc,0x62,0x00]
 
-image_gather4_lz_o v5, v[252:255], s[8:15], s[12:15] dmask:0x1
+image_gather4_lz_o v[5:8], v[252:255], s[8:15], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0xfc,0x05,0x62,0x00]
 
-image_gather4_lz_o v5, v[1:4], s[12:19], s[12:15] dmask:0x1
+image_gather4_lz_o v[5:8], v[1:4], s[12:19], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0x01,0x05,0x63,0x00]
 
-image_gather4_lz_o v5, v[1:4], s[92:99], s[12:15] dmask:0x1
+image_gather4_lz_o v[5:8], v[1:4], s[92:99], s[12:15] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0x01,0x05,0x77,0x00]
 
-image_gather4_lz_o v5, v[1:4], s[8:15], s[16:19] dmask:0x1
+image_gather4_lz_o v[5:8], v[1:4], s[8:15], s[16:19] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0x01,0x05,0x82,0x00]
 
-image_gather4_lz_o v5, v[1:4], s[8:15], s[96:99] dmask:0x1
+image_gather4_lz_o v[5:8], v[1:4], s[8:15], s[96:99] dmask:0x1
 // CHECK: [0x00,0x01,0x5c,0xf1,0x01,0x05,0x02,0x03]
 
-image_gather4_lz_o v5, v[1:4], s[8:15], s[12:15] dmask:0x2
+image_gather4_lz_o v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x2
 // CHECK: [0x00,0x02,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x3
-// CHECK: [0x00,0x03,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v5, v[1:4], s[8:15], s[12:15] dmask:0x4
+image_gather4_lz_o v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x4
 // CHECK: [0x00,0x04,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x5
-// CHECK: [0x00,0x05,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x6
-// CHECK: [0x00,0x06,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:7], v[1:4], s[8:15], s[12:15] dmask:0x7
-// CHECK: [0x00,0x07,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v5, v[1:4], s[8:15], s[12:15] dmask:0x8
+image_gather4_lz_o v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x8
 // CHECK: [0x00,0x08,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x9
-// CHECK: [0x00,0x09,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:6], v[1:4], s[8:15], s[12:15] dmask:0xa
-// CHECK: [0x00,0x0a,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xb
-// CHECK: [0x00,0x0b,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:6], v[1:4], s[8:15], s[12:15] dmask:0xc
-// CHECK: [0x00,0x0c,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xd
-// CHECK: [0x00,0x0d,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v[5:7], v[1:4], s[8:15], s[12:15] dmask:0xe
-// CHECK: [0x00,0x0e,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v5, v[1:4], s[8:15], s[12:15] dmask:0x0
-// CHECK: [0x00,0x00,0x5c,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v5, v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
+image_gather4_lz_o v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 unorm
 // CHECK: [0x00,0x11,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v5, v[1:4], s[8:15], s[12:15] dmask:0x1 glc
+image_gather4_lz_o v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 glc
 // CHECK: [0x00,0x21,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v5, v[1:4], s[8:15], s[12:15] dmask:0x1 slc
+image_gather4_lz_o v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 slc
 // CHECK: [0x00,0x01,0x5c,0xf3,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 tfe
-// CHECK: [0x00,0x01,0x5d,0xf1,0x01,0x05,0x62,0x00]
-
-image_gather4_lz_o v5, v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
+image_gather4_lz_o v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 lwe
 // CHECK: [0x00,0x01,0x5e,0xf1,0x01,0x05,0x62,0x00]
 
-image_gather4_lz_o v5, v[1:4], s[8:15], s[12:15] dmask:0x1 da
+image_gather4_lz_o v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x1 da
 // CHECK: [0x00,0x41,0x5c,0xf1,0x01,0x05,0x62,0x00]
 
+image_gather4_lz_o v[5:6], v[1:4], s[8:15], s[12:15] dmask:0x1 d16
+// CHECK: [0x00,0x01,0x5c,0xf1,0x01,0x05,0x62,0x80]
+
 buffer_load_format_x v5, off, s[8:11], s3 offset:4095
 // CHECK: [0xff,0x0f,0x00,0xe0,0x00,0x05,0x02,0x03]
 

Modified: llvm/trunk/test/MC/AMDGPU/mimg-err.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AMDGPU/mimg-err.s?rev=327278&r1=327277&r2=327278&view=diff
==============================================================================
--- llvm/trunk/test/MC/AMDGPU/mimg-err.s (original)
+++ llvm/trunk/test/MC/AMDGPU/mimg-err.s Mon Mar 12 08:03:34 2018
@@ -58,3 +58,10 @@ image_atomic_add v[6:7], v255, s[8:15] d
 
 image_atomic_cmpswap v[4:7], v[192:195], s[28:35] dmask:0xe tfe
 // NOGCN: error: invalid atomic image dmask
+
+//===----------------------------------------------------------------------===//
+// Image Gather
+//===----------------------------------------------------------------------===//
+
+image_gather4_cl v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x3
+// NOGCN: error: invalid image_gather dmask: only one bit must be set

Modified: llvm/trunk/test/MC/AMDGPU/mimg.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AMDGPU/mimg.s?rev=327278&r1=327277&r2=327278&view=diff
==============================================================================
--- llvm/trunk/test/MC/AMDGPU/mimg.s (original)
+++ llvm/trunk/test/MC/AMDGPU/mimg.s Mon Mar 12 08:03:34 2018
@@ -234,3 +234,38 @@ image_atomic_add v10, v6, s[8:15] dmask:
 // SICI: image_atomic_add v10, v6, s[8:15] dmask:0x1 r128 ; encoding: [0x00,0x81,0x44,0xf0,0x06,0x0a,0x02,0x00]
 // VI:   image_atomic_add v10, v6, s[8:15] dmask:0x1 r128 ; encoding: [0x00,0x81,0x48,0xf0,0x06,0x0a,0x02,0x00]
 // NOGFX9: error: r128 modifier is not supported on this GPU
+
+//===----------------------------------------------------------------------===//
+// Image Gather4
+//===----------------------------------------------------------------------===//
+
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x1
+// GCN: image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x1 ; encoding: [0x00,0x01,0x00,0xf1,0x01,0x05,0x62,0x00]
+
+image_gather4 v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x2
+// GCN: image_gather4 v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x2 ; encoding: [0x00,0x02,0x00,0xf1,0x01,0x05,0x62,0x00]
+
+image_gather4 v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x4
+// GCN: image_gather4 v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x4 ; encoding: [0x00,0x04,0x00,0xf1,0x01,0x05,0x62,0x00]
+
+image_gather4 v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x8
+// GCN: image_gather4 v[5:8], v[1:4], s[8:15], s[12:15] dmask:0x8 ; encoding: [0x00,0x08,0x00,0xf1,0x01,0x05,0x62,0x00]
+
+image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16
+// NOSICI:   error: instruction not supported on this GPU
+// GFX8_0:   image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x1 d16 ; encoding: [0x00,0x01,0x00,0xf1,0x01,0x05,0x62,0x80]
+// NOGFX8_1: error: instruction not supported on this GPU
+// NOGFX9:   error: instruction not supported on this GPU
+
+image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0x1 d16
+// NOSICI:   error: d16 modifier is not supported on this GPU
+// NOGFX8_0: error: instruction not supported on this GPU
+// GFX8_1:   image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0x1 d16 ; encoding: [0x00,0x01,0x00,0xf1,0x01,0x05,0x62,0x80]
+// GFX9:     image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0x1 d16 ; encoding: [0x00,0x01,0x00,0xf1,0x01,0x05,0x62,0x80]
+
+// FIXME: d16 is handled as an optional modifier, should it be corrected?
+image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0x1
+// NOSICI:   error: d16 modifier is not supported on this GPU
+// NOGFX8_0: error: instruction not supported on this GPU
+// GFX8_1:   image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0x1 d16 ; encoding: [0x00,0x01,0x00,0xf1,0x01,0x05,0x62,0x80]
+// GFX9:     image_gather4 v[5:6], v1, s[8:15], s[12:15] dmask:0x1 d16 ; encoding: [0x00,0x01,0x00,0xf1,0x01,0x05,0x62,0x80]

Modified: llvm/trunk/test/MC/Disassembler/AMDGPU/mimg_vi.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/Disassembler/AMDGPU/mimg_vi.txt?rev=327278&r1=327277&r2=327278&view=diff
==============================================================================
--- llvm/trunk/test/MC/Disassembler/AMDGPU/mimg_vi.txt (original)
+++ llvm/trunk/test/MC/Disassembler/AMDGPU/mimg_vi.txt Mon Mar 12 08:03:34 2018
@@ -155,3 +155,34 @@
 
 # VI: image_atomic_cmpswap v[5:6], v1, s[8:15] dmask:0xe unorm ; encoding: [0x00,0x1e,0x44,0xf0,0x01,0x05,0x02,0x00]
 0x00,0x1e,0x44,0xf0,0x01,0x05,0x02,0x00
+
+#===------------------------------------------------------------------------===#
+# Image gather
+#===------------------------------------------------------------------------===#
+
+# VI: image_gather4 v[252:255], v1, s[8:15], s[12:15] dmask:0x1 ; encoding: [0x00,0x01,0x00,0xf1,0x01,0xfc,0x62,0x00]
+0x00,0x01,0x00,0xf1,0x01,0xfc,0x62,0x00
+
+# VI: image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x2 ; encoding: [0x00,0x02,0x00,0xf1,0x01,0x05,0x62,0x00]
+0x00,0x02,0x00,0xf1,0x01,0x05,0x62,0x00
+
+# VI: image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x4 ; encoding: [0x00,0x04,0x00,0xf1,0x01,0x05,0x62,0x00]
+0x00,0x04,0x00,0xf1,0x01,0x05,0x62,0x00
+
+# VI: image_gather4 v[5:8], v1, s[8:15], s[12:15] dmask:0x8 ; encoding: [0x00,0x08,0x00,0xf1,0x01,0x05,0x62,0x00]
+0x00,0x08,0x00,0xf1,0x01,0x05,0x62,0x00
+
+# GFX80: image_gather4 v[252:255], v1, s[8:15], s[12:15] dmask:0x1 unorm glc slc lwe da d16 ; encoding: [0x00,0x71,0x02,0xf3,0x01,0xfc,0x62,0x80]
+# GFX81: image_gather4 v[252:253], v1, s[8:15], s[12:15] dmask:0x1 unorm glc slc lwe da d16 ; encoding: [0x00,0x71,0x02,0xf3,0x01,0xfc,0x62,0x80]
+0x00,0x71,0x02,0xf3,0x01,0xfc,0x62,0x80
+
+#===------------------------------------------------------------------------===#
+# Invalid image gather (incorrect dmask value or tfe).
+# Disassembler may produce a partially incorrect instruction but should not fail.
+#===------------------------------------------------------------------------===#
+
+# VI: image_gather4 v[252:255], v1, s[8:15], s[12:15] dmask:0x3 ; encoding: [0x00,0x03,0x00,0xf1,0x01,0xfc,0x62,0x00]
+0x00,0x03,0x00,0xf1,0x01,0xfc,0x62,0x00
+
+# VI: image_gather4 v[252:255], v1, s[8:15], s[12:15] dmask:0x1 unorm glc slc tfe lwe da ; encoding: [0x00,0x71,0x03,0xf3,0x01,0xfc,0x62,0x00]
+0x00,0x71,0x03,0xf3,0x01,0xfc,0x62,0x00




More information about the llvm-commits mailing list