Skip to content

Commit 87dc7c2

Browse files
committed
Add missing test arguments for plain vector arguments
1 parent bc728aa commit 87dc7c2

File tree

3 files changed

+148
-5
lines changed

3 files changed

+148
-5
lines changed

src/AsmArm64.CodeGen/Arm64Processor.WriterAssembler.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2020,7 +2020,10 @@ private static void GetRegisterOperandVariation(int operandIndex, Instruction in
20202020
}
20212021
}
20222022
}
2023-
2023+
else
2024+
{
2025+
testArguments.Add(new RegisterTestArgument("V", 0 + operandIndex));
2026+
}
20242027
break;
20252028
default:
20262029
throw new ArgumentOutOfRangeException();

src/AsmArm64.Tests/generated/Advsimd/Arm64InstructionFactoryTests_LUTI2.gen.cs

Lines changed: 72 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,42 @@ public class Arm64InstructionFactoryTests_LUTI2_Advsimd
2424
[TestMethod]
2525
public void Test_LUTI2_asimdtbl_l5_0()
2626
{
27-
Assert.Inconclusive("Not handled LUTI2_asimdtbl_l5 - LUTI2 Vd.16B, {Vn.16B}, Vm[index]");
27+
28+
{
29+
var raw = LUTI2(V0.T_16B, V1.T_16B.Group1(), V2[1]);
30+
var instruction = Arm64Instruction.Decode(raw);
31+
Assert.AreEqual(Arm64InstructionId.LUTI2_asimdtbl_l5, instruction.Id);
32+
Assert.AreEqual(Arm64Mnemonic.LUTI2, instruction.Mnemonic);
33+
var asm = instruction.ToString("H", null);
34+
Assert.AreEqual("LUTI2 V0.16B, { V1.16B }, V2[1]", asm);
35+
}
36+
37+
{
38+
var raw = LUTI2(V30.T_16B, V1.T_16B.Group1(), V2[1]);
39+
var instruction = Arm64Instruction.Decode(raw);
40+
Assert.AreEqual(Arm64InstructionId.LUTI2_asimdtbl_l5, instruction.Id);
41+
Assert.AreEqual(Arm64Mnemonic.LUTI2, instruction.Mnemonic);
42+
var asm = instruction.ToString("H", null);
43+
Assert.AreEqual("LUTI2 V30.16B, { V1.16B }, V2[1]", asm);
44+
}
45+
46+
{
47+
var raw = LUTI2(V0.T_16B, V31.T_16B.Group1(), V2[1]);
48+
var instruction = Arm64Instruction.Decode(raw);
49+
Assert.AreEqual(Arm64InstructionId.LUTI2_asimdtbl_l5, instruction.Id);
50+
Assert.AreEqual(Arm64Mnemonic.LUTI2, instruction.Mnemonic);
51+
var asm = instruction.ToString("H", null);
52+
Assert.AreEqual("LUTI2 V0.16B, { V31.16B }, V2[1]", asm);
53+
}
54+
55+
{
56+
var raw = LUTI2(V30.T_16B, V31.T_16B.Group1(), V2[1]);
57+
var instruction = Arm64Instruction.Decode(raw);
58+
Assert.AreEqual(Arm64InstructionId.LUTI2_asimdtbl_l5, instruction.Id);
59+
Assert.AreEqual(Arm64Mnemonic.LUTI2, instruction.Mnemonic);
60+
var asm = instruction.ToString("H", null);
61+
Assert.AreEqual("LUTI2 V30.16B, { V31.16B }, V2[1]", asm);
62+
}
2863
}
2964

3065
/// <summary>
@@ -33,6 +68,41 @@ public void Test_LUTI2_asimdtbl_l5_0()
3368
[TestMethod]
3469
public void Test_LUTI2_asimdtbl_l6_1()
3570
{
36-
Assert.Inconclusive("Not handled LUTI2_asimdtbl_l6 - LUTI2 Vd.8H, {Vn.8H}, Vm[index]");
71+
72+
{
73+
var raw = LUTI2(V0.T_8H, V1.T_8H.Group1(), V2[1]);
74+
var instruction = Arm64Instruction.Decode(raw);
75+
Assert.AreEqual(Arm64InstructionId.LUTI2_asimdtbl_l6, instruction.Id);
76+
Assert.AreEqual(Arm64Mnemonic.LUTI2, instruction.Mnemonic);
77+
var asm = instruction.ToString("H", null);
78+
Assert.AreEqual("LUTI2 V0.8H, { V1.8H }, V2[1]", asm);
79+
}
80+
81+
{
82+
var raw = LUTI2(V30.T_8H, V1.T_8H.Group1(), V2[1]);
83+
var instruction = Arm64Instruction.Decode(raw);
84+
Assert.AreEqual(Arm64InstructionId.LUTI2_asimdtbl_l6, instruction.Id);
85+
Assert.AreEqual(Arm64Mnemonic.LUTI2, instruction.Mnemonic);
86+
var asm = instruction.ToString("H", null);
87+
Assert.AreEqual("LUTI2 V30.8H, { V1.8H }, V2[1]", asm);
88+
}
89+
90+
{
91+
var raw = LUTI2(V0.T_8H, V31.T_8H.Group1(), V2[1]);
92+
var instruction = Arm64Instruction.Decode(raw);
93+
Assert.AreEqual(Arm64InstructionId.LUTI2_asimdtbl_l6, instruction.Id);
94+
Assert.AreEqual(Arm64Mnemonic.LUTI2, instruction.Mnemonic);
95+
var asm = instruction.ToString("H", null);
96+
Assert.AreEqual("LUTI2 V0.8H, { V31.8H }, V2[1]", asm);
97+
}
98+
99+
{
100+
var raw = LUTI2(V30.T_8H, V31.T_8H.Group1(), V2[1]);
101+
var instruction = Arm64Instruction.Decode(raw);
102+
Assert.AreEqual(Arm64InstructionId.LUTI2_asimdtbl_l6, instruction.Id);
103+
Assert.AreEqual(Arm64Mnemonic.LUTI2, instruction.Mnemonic);
104+
var asm = instruction.ToString("H", null);
105+
Assert.AreEqual("LUTI2 V30.8H, { V31.8H }, V2[1]", asm);
106+
}
37107
}
38108
}

src/AsmArm64.Tests/generated/Advsimd/Arm64InstructionFactoryTests_LUTI4.gen.cs

Lines changed: 72 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,42 @@ public class Arm64InstructionFactoryTests_LUTI4_Advsimd
2424
[TestMethod]
2525
public void Test_LUTI4_asimdtbl_l5_0()
2626
{
27-
Assert.Inconclusive("Not handled LUTI4_asimdtbl_l5 - LUTI4 Vd.16B, {Vn.16B}, Vm[index]");
27+
28+
{
29+
var raw = LUTI4(V0.T_16B, V1.T_16B.Group1(), V2[1]);
30+
var instruction = Arm64Instruction.Decode(raw);
31+
Assert.AreEqual(Arm64InstructionId.LUTI4_asimdtbl_l5, instruction.Id);
32+
Assert.AreEqual(Arm64Mnemonic.LUTI4, instruction.Mnemonic);
33+
var asm = instruction.ToString("H", null);
34+
Assert.AreEqual("LUTI4 V0.16B, { V1.16B }, V2[1]", asm);
35+
}
36+
37+
{
38+
var raw = LUTI4(V30.T_16B, V1.T_16B.Group1(), V2[1]);
39+
var instruction = Arm64Instruction.Decode(raw);
40+
Assert.AreEqual(Arm64InstructionId.LUTI4_asimdtbl_l5, instruction.Id);
41+
Assert.AreEqual(Arm64Mnemonic.LUTI4, instruction.Mnemonic);
42+
var asm = instruction.ToString("H", null);
43+
Assert.AreEqual("LUTI4 V30.16B, { V1.16B }, V2[1]", asm);
44+
}
45+
46+
{
47+
var raw = LUTI4(V0.T_16B, V31.T_16B.Group1(), V2[1]);
48+
var instruction = Arm64Instruction.Decode(raw);
49+
Assert.AreEqual(Arm64InstructionId.LUTI4_asimdtbl_l5, instruction.Id);
50+
Assert.AreEqual(Arm64Mnemonic.LUTI4, instruction.Mnemonic);
51+
var asm = instruction.ToString("H", null);
52+
Assert.AreEqual("LUTI4 V0.16B, { V31.16B }, V2[1]", asm);
53+
}
54+
55+
{
56+
var raw = LUTI4(V30.T_16B, V31.T_16B.Group1(), V2[1]);
57+
var instruction = Arm64Instruction.Decode(raw);
58+
Assert.AreEqual(Arm64InstructionId.LUTI4_asimdtbl_l5, instruction.Id);
59+
Assert.AreEqual(Arm64Mnemonic.LUTI4, instruction.Mnemonic);
60+
var asm = instruction.ToString("H", null);
61+
Assert.AreEqual("LUTI4 V30.16B, { V31.16B }, V2[1]", asm);
62+
}
2863
}
2964

3065
/// <summary>
@@ -33,6 +68,41 @@ public void Test_LUTI4_asimdtbl_l5_0()
3368
[TestMethod]
3469
public void Test_LUTI4_asimdtbl_l7_1()
3570
{
36-
Assert.Inconclusive("Not handled LUTI4_asimdtbl_l7 - LUTI4 Vd.8H, {Vn1.8H, Vn2.8H}, Vm[index]");
71+
72+
{
73+
var raw = LUTI4(V0.T_8H, V1.T_8H.Group2(), V2[1]);
74+
var instruction = Arm64Instruction.Decode(raw);
75+
Assert.AreEqual(Arm64InstructionId.LUTI4_asimdtbl_l7, instruction.Id);
76+
Assert.AreEqual(Arm64Mnemonic.LUTI4, instruction.Mnemonic);
77+
var asm = instruction.ToString("H", null);
78+
Assert.AreEqual("LUTI4 V0.8H, { V1.8H, V2.8H }, V2[1]", asm);
79+
}
80+
81+
{
82+
var raw = LUTI4(V30.T_8H, V1.T_8H.Group2(), V2[1]);
83+
var instruction = Arm64Instruction.Decode(raw);
84+
Assert.AreEqual(Arm64InstructionId.LUTI4_asimdtbl_l7, instruction.Id);
85+
Assert.AreEqual(Arm64Mnemonic.LUTI4, instruction.Mnemonic);
86+
var asm = instruction.ToString("H", null);
87+
Assert.AreEqual("LUTI4 V30.8H, { V1.8H, V2.8H }, V2[1]", asm);
88+
}
89+
90+
{
91+
var raw = LUTI4(V0.T_8H, V31.T_8H.Group2(), V2[1]);
92+
var instruction = Arm64Instruction.Decode(raw);
93+
Assert.AreEqual(Arm64InstructionId.LUTI4_asimdtbl_l7, instruction.Id);
94+
Assert.AreEqual(Arm64Mnemonic.LUTI4, instruction.Mnemonic);
95+
var asm = instruction.ToString("H", null);
96+
Assert.AreEqual("LUTI4 V0.8H, { V31.8H, V0.8H }, V2[1]", asm);
97+
}
98+
99+
{
100+
var raw = LUTI4(V30.T_8H, V31.T_8H.Group2(), V2[1]);
101+
var instruction = Arm64Instruction.Decode(raw);
102+
Assert.AreEqual(Arm64InstructionId.LUTI4_asimdtbl_l7, instruction.Id);
103+
Assert.AreEqual(Arm64Mnemonic.LUTI4, instruction.Mnemonic);
104+
var asm = instruction.ToString("H", null);
105+
Assert.AreEqual("LUTI4 V30.8H, { V31.8H, V0.8H }, V2[1]", asm);
106+
}
37107
}
38108
}

0 commit comments

Comments
 (0)