aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-06-12 20:39:52 +0100
committerMichael Williamson <mike@zwobble.org>2023-06-12 20:39:52 +0100
commitc359976e1f9456248c1d1cbebf8c58db5379709c (patch)
tree2afd767a513214be57f0856a58c01a33b422245f /src/test/java
parentae0f6f8ce9a82a17f44e31f21e437bd66a910f23 (diff)
Add LLVM operand structure
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java15
-rw-r--r--src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java4
2 files changed, 19 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java
index 64221e38..0686b989 100644
--- a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java
+++ b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java
@@ -55,6 +55,21 @@ public class LlvmIrSerializerOperandsTests {
}
@Test
+ public void structureIsSerializedAsElements() {
+ var operand = LlvmIr.operandStructure(
+ List.of(
+ LlvmIr.typedOperand(LlvmTypes.INT_64, LlvmIr.operandInt(1)),
+ LlvmIr.typedOperand(LlvmTypes.INT_64, LlvmIr.operandInt(2)),
+ LlvmIr.typedOperand(LlvmTypes.INT_64, LlvmIr.operandInt(3))
+ )
+ );
+
+ var result = serializeToString(operand, LlvmIrSerializer::serializeOperand);
+
+ assertThat(result, equalTo("{i64 1, i64 2, i64 3}"));
+ }
+
+ @Test
public void typedOperandHasTypeAndValue() {
var operand = LlvmIr.typedOperand(LlvmTypes.INT_64, LlvmIr.operandInt(42));
diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java b/src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java
index 887bc655..224f1c5d 100644
--- a/src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java
+++ b/src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java
@@ -46,6 +46,10 @@ public class LlvmIr {
return new LlvmOperandInt(value);
}
+ public static LlvmOperand operandStructure(List<LlvmTypedOperand> elements) {
+ return new LlvmOperandStructure(elements);
+ }
+
public static LlvmParam param(LlvmType type, String name) {
return new LlvmParam(type, name);
}