diff --git a/AsmGen/Program.cs b/AsmGen/Program.cs index 2839d25..a4b3e75 100644 --- a/AsmGen/Program.cs +++ b/AsmGen/Program.cs @@ -20,8 +20,8 @@ static void Main(string[] args) tests.Add(new RobTest(12, 800, 1, initialDependentBranch: false)); // avx-512 - tests.Add(new Stq512Test(16, 128, 1, differentLines: true)); - tests.Add(new Stq512Test(16, 128, 1, differentLines: false)); + tests.Add(new Stq512Test(16, 300, 1, differentLines: true)); + tests.Add(new Stq512Test(16, 300, 1, differentLines: false)); tests.Add(new MaskRfTest(32, 256, 1)); tests.Add(new ZeroRobTest(12, 800, 1, initialDependentBranch: false)); @@ -29,7 +29,7 @@ static void Main(string[] args) tests.Add(new FpRfTest(60, 800, 1, initialDependentBranch: false));; tests.Add(new FlagRfTest(8, 100, 1, initialDependentBranch: false)); tests.Add(new LdqTest(80, 250, 1, initialDependentBranch: false)); - tests.Add(new StqTest(4, 200, 1, initialDependentBranch: false)); + tests.Add(new StqTest(4, 300, 1, initialDependentBranch: false)); tests.Add(new MixIntVec128RfTest(4, 600, 1, initialDependentBranch: false)); tests.Add(new MixIntRfDepBranchTest(4, 100, 1, 2)); tests.Add(new MixIntRfDepBranchTest(4, 100, 1, 4)); @@ -84,9 +84,10 @@ static void Main(string[] args) //tests.Add(new FaddNsq(20, 115, 1, 115)); tests.Add(new Vec512RfTest(20, 500, 1)); tests.Add(new MixVec512Vec256RfTest(20, 500, 1)); - tests.Add(new MixVec512Vec256BlockRfTest(200, 400, 1, 240)); - tests.Add(new MixVec512Vec256BlockRfTest(200, 400, 1, 144)); - tests.Add(new MixVec512Vec256BlockRfTest(200, 400, 1, 120)); + tests.Add(new MixVec512Vec256BlockRfTest(200, 500, 1, 240)); + tests.Add(new MixVec512Vec256BlockRfTest(200, 500, 1, 144)); + tests.Add(new MixVec512Vec256BlockRfTest(200, 500, 1, 120)); + tests.Add(new MixVec512Vec256BlockRfTest(200, 500, 1, 60)); tests.Add(new MmxRfTest(20, 200, 1)); List tasks = new List(); diff --git a/AsmGen/tests/MixVec512Vec256BlockRfTest.cs b/AsmGen/tests/MixVec512Vec256BlockRfTest.cs index 9a98b84..0e6f2fa 100644 --- a/AsmGen/tests/MixVec512Vec256BlockRfTest.cs +++ b/AsmGen/tests/MixVec512Vec256BlockRfTest.cs @@ -46,14 +46,14 @@ public override void GenerateAsm(StringBuilder sb, IUarchTest.ISA isa) for (int i = 0; i < nTiny; i++) { int regNum = ((i & 1) == 0) ? i & 0x1F : (i + 1) & 0x1F; - instrsList.Add($" vaddps %ymm2, %ymm{regNum}, %ymm{regNum}"); + instrsList.Add($" vxorps %ymm2, %ymm{regNum}, %ymm{regNum}"); } for (int i = nTiny; i < this.Counts[this.Counts.Length - 1];i++) { int regNum = ((i & 1) == 0) ? i: (i + 1); regNum = (regNum + 1) & 0x1F; - instrsList.Add($" vaddps %zmm1, %zmm{regNum}, %zmm{regNum}"); + instrsList.Add($" vxorps %zmm1, %zmm{regNum}, %zmm{regNum}"); } string[] unrolledAdds = instrsList.ToArray(); diff --git a/AsmGen/tests/ReturnStackTest.cs b/AsmGen/tests/ReturnStackTest.cs index 2a7f99a..ed44adb 100644 --- a/AsmGen/tests/ReturnStackTest.cs +++ b/AsmGen/tests/ReturnStackTest.cs @@ -69,6 +69,7 @@ public void GenerateX86GccAsm(StringBuilder sb) { string funcName = GetFunctionName(callDepth, callIdx); sb.AppendLine($".global {funcName}"); + sb.AppendLine(".align 64"); // https://github.com/clamchowder/Microbenchmarks/issues/14 sb.AppendLine($"{funcName}:"); if (callIdx < callDepth - 1) {