# mul1's SASS is unchanged by the codebook axis, at every width (#1861)
#
#   for K in 1..8: python3 sass_mul1_identity.py --bits $K --old <9940127be copy>
#
# Baseline 9940127be is the tip of feat/exl3-int8-gemm before this branch: the
# kernel with ONE codebook, templated on BITS alone.  The new build is narrowed
# with -DEXL3_I8_ONLY_CB=2, so every mainloop instantiation in it is mul1's.
#
# Instruction ORDER and REGISTER ALLOCATION are not normalised -- only
# instruction addresses, module-wide branch label ids, and the kernel's own
# mangled symbol in its RET relocation (which must move: the template gained a
# parameter).
#
# 8 widths x 159 kernels, of which 138 are exl3_i8_gemm_kernel instantiations:
# 1104 mainloop instantiations, ALL bit-identical.
#
# THE HARNESS CAN REPORT A NEGATIVE -- the null control is appended at the end
# of this file: the same comparison against a copy of the kernel whose mul1 dp4a
# addend is off by one reports 138 REGRESSIONs, and the only 9 instantiations it
# leaves identical are the NULL_DECODE arms, which do not call the decode.

baseline: /work/tools/int8_gemm/.baseline_9940127be.cu   width: K=1   new build: mul1 only
kernels compared: 159   IDENTICAL SASS: 159
  of which exl3_i8_gemm_kernel instantiations: 138
SASS MUL1 IDENTITY K=1: PASS

baseline: /work/tools/int8_gemm/.baseline_9940127be.cu   width: K=2   new build: mul1 only
kernels compared: 159   IDENTICAL SASS: 159
  of which exl3_i8_gemm_kernel instantiations: 138
SASS MUL1 IDENTITY K=2: PASS

baseline: /work/tools/int8_gemm/.baseline_9940127be.cu   width: K=3   new build: mul1 only
kernels compared: 159   IDENTICAL SASS: 159
  of which exl3_i8_gemm_kernel instantiations: 138
SASS MUL1 IDENTITY K=3: PASS

baseline: /work/tools/int8_gemm/.baseline_9940127be.cu   width: K=4   new build: mul1 only
kernels compared: 159   IDENTICAL SASS: 159
  of which exl3_i8_gemm_kernel instantiations: 138
SASS MUL1 IDENTITY K=4: PASS

baseline: /work/tools/int8_gemm/.baseline_9940127be.cu   width: K=5   new build: mul1 only
kernels compared: 159   IDENTICAL SASS: 159
  of which exl3_i8_gemm_kernel instantiations: 138
SASS MUL1 IDENTITY K=5: PASS

baseline: /work/tools/int8_gemm/.baseline_9940127be.cu   width: K=6   new build: mul1 only
kernels compared: 159   IDENTICAL SASS: 159
  of which exl3_i8_gemm_kernel instantiations: 138
SASS MUL1 IDENTITY K=6: PASS

baseline: /work/tools/int8_gemm/.baseline_9940127be.cu   width: K=7   new build: mul1 only
kernels compared: 159   IDENTICAL SASS: 159
  of which exl3_i8_gemm_kernel instantiations: 138
SASS MUL1 IDENTITY K=7: PASS

baseline: /work/tools/int8_gemm/.baseline_9940127be.cu   width: K=8   new build: mul1 only
kernels compared: 159   IDENTICAL SASS: 159
  of which exl3_i8_gemm_kernel instantiations: 138
SASS MUL1 IDENTITY K=8: PASS


# ---------------------------------------------------------------------------
# THE NULL CONTROL, in full.  Same comparison, but --new points at a copy of
# the kernel whose mul1 dp4a addend is EXL3_I8_DP4A_ADDEND + 1 -- a semantic
# change to the decode, not a no-op the compiler can delete.
#
#   python3 sass_mul1_identity.py --bits 4 --old <baseline> --new /tmp/mutated2.cu
#
# 138 REGRESSIONs: 129 of the 138 mainloop instantiations plus the instruments.
# The 9 that stay identical are the NULL_DECODE arms, which do not call the
# decode at all -- so even the exemptions are the right ones.
#
# An earlier, WEAKER control (a popc masked to zero, injected before the dp4a)
# moved only 3 of 138: the compiler deleted it almost everywhere.  It fired,
# but it says little; this one says the comparison sees the decode itself.
# ---------------------------------------------------------------------------
baseline: /work/tools/int8_gemm/.baseline_9940127be.cu   width: K=4   new build: mul1 only
kernels compared: 159   IDENTICAL SASS: 21
  of which exl3_i8_gemm_kernel instantiations: 9
  REGRESSION decode_table_kernel: 56 -> 56 instructions, 25 positional mismatches, same multiset=False
  REGRESSION dq_dense<1>: 136 -> 136 instructions, 1 positional mismatches, same multiset=False
  REGRESSION dq_dense<2>: 136 -> 136 instructions, 1 positional mismatches, same multiset=False
  REGRESSION dq_dense<3>: 152 -> 152 instructions, 1 positional mismatches, same multiset=False
  REGRESSION dq_dense<4>: 128 -> 128 instructions, 1 positional mismatches, same multiset=False
  REGRESSION dq_dense<5>: 184 -> 184 instructions, 1 positional mismatches, same multiset=False
  REGRESSION dq_dense<6>: 184 -> 184 instructions, 1 positional mismatches, same multiset=False
  REGRESSION dq_dense<7>: 248 -> 248 instructions, 1 positional mismatches, same multiset=False
  REGRESSION dq_dense<8>: 184 -> 184 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,1,4,2,8,false,false,false,false,false,false>: 2488 -> 2488 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,1,4,2,8,false,false,false,false,true,false>: 2592 -> 2592 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,1,4,2,8,false,false,false,false,true,true>: 2800 -> 2800 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,1,4,2,8,false,false,false,true,false,false>: 2488 -> 2488 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,1,4,2,8,false,false,false,true,true,false>: 2592 -> 2592 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,1,4,2,8,false,false,false,true,true,true>: 2800 -> 2800 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,1,4,2,8,false,false,true,false,false,false>: 2232 -> 2232 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,1,4,2,8,false,false,true,false,true,false>: 2336 -> 2336 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,1,4,2,8,false,false,true,false,true,true>: 2544 -> 2544 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,1,4,2,8,false,false,true,true,false,false>: 2232 -> 2232 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,1,4,2,8,false,false,true,true,true,false>: 2336 -> 2336 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,1,4,2,8,false,false,true,true,true,true>: 2544 -> 2544 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,1,4,2,8,false,true,true,false,false,false>: 2232 -> 2232 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,1,4,2,8,false,true,true,false,true,false>: 2336 -> 2336 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,1,4,2,8,false,true,true,false,true,true>: 2544 -> 2544 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,1,4,3,8,false,true,true,false,false,false>: 2504 -> 2504 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,1,4,3,8,false,true,true,false,true,false>: 2608 -> 2608 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,1,4,3,8,false,true,true,false,true,true>: 2544 -> 2544 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,2,4,2,1,false,false,true,false,false,false>: 1760 -> 1760 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,2,4,2,1,false,false,true,false,true,false>: 1960 -> 1960 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,2,4,2,1,false,false,true,false,true,true>: 2200 -> 2200 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,2,4,2,4,false,false,true,false,false,false>: 1768 -> 1768 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,2,4,2,4,false,false,true,false,true,false>: 1960 -> 1960 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,2,4,2,4,false,false,true,false,true,true>: 2200 -> 2200 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,2,4,2,8,false,false,true,false,false,false>: 1768 -> 1768 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,2,4,2,8,false,false,true,false,true,false>: 1960 -> 1960 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,128,2,4,2,8,false,false,true,false,true,true>: 2200 -> 2200 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,2,8,false,false,false,false,false,false>: 1912 -> 1912 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,2,8,false,false,false,false,true,false>: 2288 -> 2288 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,2,8,false,false,false,false,true,true>: 2768 -> 2768 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,2,8,false,false,false,true,false,false>: 1912 -> 1912 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,2,8,false,false,false,true,true,false>: 2288 -> 2288 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,2,8,false,false,false,true,true,true>: 2776 -> 2776 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,2,8,false,false,true,false,false,false>: 1784 -> 1784 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,2,8,false,false,true,false,true,false>: 2152 -> 2152 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,2,8,false,false,true,false,true,true>: 2640 -> 2640 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,2,8,false,false,true,true,false,false>: 1784 -> 1784 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,2,8,false,false,true,true,true,false>: 2152 -> 2152 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,2,8,false,false,true,true,true,true>: 2640 -> 2640 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,2,8,false,true,true,false,false,false>: 1776 -> 1776 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,2,8,false,true,true,false,true,false>: 2152 -> 2152 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,2,8,false,true,true,false,true,true>: 2640 -> 2640 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,3,1,false,false,true,false,false,false>: 2048 -> 2048 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,3,1,false,false,true,false,true,false>: 2160 -> 2160 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,3,1,false,false,true,false,true,true>: 2360 -> 2360 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,3,8,false,false,false,false,false,false>: 2184 -> 2184 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,3,8,false,false,false,false,true,false>: 2288 -> 2288 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,3,8,false,false,false,false,true,true>: 2496 -> 2496 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,3,8,false,false,false,true,false,false>: 2184 -> 2184 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,3,8,false,false,false,true,true,false>: 2288 -> 2288 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,3,8,false,false,false,true,true,true>: 2496 -> 2496 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,3,8,false,false,true,false,false,false>: 2056 -> 2056 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,3,8,false,false,true,false,true,false>: 2160 -> 2160 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,3,8,false,false,true,false,true,true>: 2368 -> 2368 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,3,8,false,true,true,false,false,false>: 2056 -> 2056 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,3,8,false,true,true,false,true,false>: 2160 -> 2160 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,4,3,8,false,true,true,false,true,true>: 2368 -> 2368 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,8,2,8,false,false,false,false,false,false>: 1392 -> 1392 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,8,2,8,false,false,false,false,true,false>: 1768 -> 1768 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,8,2,8,false,false,false,false,true,true>: 2280 -> 2280 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,8,2,8,false,false,true,false,false,false>: 1328 -> 1328 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,8,2,8,false,false,true,false,true,false>: 1704 -> 1704 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,8,2,8,false,false,true,false,true,true>: 2216 -> 2216 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,8,2,8,false,true,true,false,false,false>: 1328 -> 1328 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,8,2,8,false,true,true,false,true,false>: 1704 -> 1704 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,1,8,2,8,false,true,true,false,true,true>: 2216 -> 2216 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,2,4,3,1,false,false,true,false,false,false>: 1624 -> 1624 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,2,4,3,1,false,false,true,false,true,false>: 1808 -> 1808 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,2,4,3,1,false,false,true,false,true,true>: 2048 -> 2048 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,2,4,3,4,false,false,true,false,false,false>: 1624 -> 1624 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,2,4,3,4,false,false,true,false,true,false>: 1808 -> 1808 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,2,4,3,4,false,false,true,false,true,true>: 2048 -> 2048 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,2,4,3,8,false,false,true,false,false,false>: 1624 -> 1624 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,2,4,3,8,false,false,true,false,true,false>: 1808 -> 1808 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,128,64,2,4,3,8,false,false,true,false,true,true>: 2048 -> 2048 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,256,64,1,8,3,1,false,false,true,false,false,false>: 2064 -> 2064 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,256,64,1,8,3,1,false,false,true,false,true,false>: 2464 -> 2464 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,256,64,1,8,3,1,false,false,true,false,true,true>: 2960 -> 2960 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,256,64,1,8,3,4,false,false,true,false,false,false>: 2072 -> 2072 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,256,64,1,8,3,4,false,false,true,false,true,false>: 2464 -> 2464 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,256,64,1,8,3,4,false,false,true,false,true,true>: 2960 -> 2960 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,256,64,2,4,3,1,false,false,true,false,false,false>: 2280 -> 2280 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,256,64,2,4,3,1,false,false,true,false,true,false>: 2768 -> 2768 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,256,64,2,4,3,1,false,false,true,false,true,true>: 3256 -> 3256 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,64,64,1,4,2,8,false,false,true,false,false,false>: 1328 -> 1328 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,64,64,1,4,2,8,false,false,true,false,true,false>: 1328 -> 1328 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,64,64,1,4,2,8,false,false,true,false,true,true>: 1328 -> 1328 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,64,64,1,4,3,8,false,false,true,false,false,false>: 1600 -> 1600 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,64,64,1,4,3,8,false,false,true,false,true,false>: 1600 -> 1600 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,128,64,64,1,4,3,8,false,false,true,false,true,true>: 1600 -> 1600 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,160,128,64,2,4,3,1,false,false,true,false,false,false>: 1760 -> 1760 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,160,128,64,2,4,3,1,false,false,true,false,true,false>: 3008 -> 3008 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,160,128,64,2,4,3,1,false,false,true,false,true,true>: 2976 -> 2976 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,128,32,2,4,4,1,false,false,true,false,false,false>: 2104 -> 2104 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,128,32,2,4,4,1,false,false,true,false,true,false>: 2480 -> 2480 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,128,32,2,4,4,1,false,false,true,false,true,true>: 2968 -> 2968 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,128,64,2,4,3,1,false,false,true,false,false,false>: 2064 -> 2064 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,128,64,2,4,3,1,false,false,true,false,true,false>: 2448 -> 2448 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,128,64,2,4,3,1,false,false,true,false,true,true>: 2928 -> 2928 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,128,64,2,4,3,16,false,false,true,false,false,false>: 2072 -> 2072 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,128,64,2,4,3,16,false,false,true,false,true,false>: 2456 -> 2456 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,128,64,2,4,3,16,false,false,true,false,true,true>: 2928 -> 2928 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,128,64,2,4,3,4,false,false,true,false,false,false>: 2072 -> 2072 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,128,64,2,4,3,4,false,false,true,false,true,false>: 2456 -> 2456 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,128,64,2,4,3,4,false,false,true,false,true,true>: 2928 -> 2928 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,128,64,2,4,3,8,false,false,true,false,false,false>: 2072 -> 2072 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,128,64,2,4,3,8,false,false,true,false,true,false>: 2456 -> 2456 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,128,64,2,4,3,8,false,false,true,false,true,true>: 2928 -> 2928 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,128,64,4,2,3,1,false,false,true,false,false,false>: 2288 -> 2288 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,128,64,4,2,3,1,false,false,true,false,true,false>: 2760 -> 2760 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,128,64,4,2,3,1,false,false,true,false,true,true>: 3232 -> 3232 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,256,64,1,8,3,1,false,false,true,false,false,false>: 3272 -> 3272 instructions, 2 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,256,64,1,8,3,1,false,false,true,false,true,false>: 3464 -> 3464 instructions, 2 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,256,64,1,8,3,1,false,false,true,false,true,true>: 3952 -> 3952 instructions, 2 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,64,32,1,4,3,8,false,false,true,false,false,false>: 1976 -> 1976 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,64,32,1,4,3,8,false,false,true,false,true,false>: 1976 -> 1976 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,64,32,1,4,3,8,false,false,true,false,true,true>: 1976 -> 1976 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,64,64,1,4,2,8,false,false,true,false,false,false>: 1864 -> 1864 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,64,64,1,4,2,8,false,false,true,false,true,false>: 1864 -> 1864 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,256,64,64,1,4,2,8,false,false,true,false,true,true>: 1864 -> 1864 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,64,128,64,1,4,2,8,false,false,true,false,false,false>: 1344 -> 1344 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,64,128,64,1,4,2,8,false,false,true,false,true,false>: 1816 -> 1816 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,64,128,64,1,4,2,8,false,false,true,false,true,true>: 2328 -> 2328 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,64,128,64,2,4,3,1,false,false,true,false,false,false>: 1416 -> 1416 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,64,128,64,2,4,3,1,false,false,true,false,true,false>: 1664 -> 1664 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,64,128,64,2,4,3,1,false,false,true,false,true,true>: 1920 -> 1920 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,64,256,64,1,8,3,3,false,false,true,false,false,false>: 1640 -> 1640 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,64,256,64,1,8,3,3,false,false,true,false,true,false>: 1824 -> 1824 instructions, 1 positional mismatches, same multiset=False
  REGRESSION gemm<4,64,256,64,1,8,3,3,false,false,true,false,true,true>: 2072 -> 2072 instructions, 1 positional mismatches, same multiset=False
SASS MUL1 IDENTITY K=4: FAIL
