diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-06-12 20:36:35 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-06-12 20:36:35 +0100 |
| commit | ae0f6f8ce9a82a17f44e31f21e437bd66a910f23 (patch) | |
| tree | b6c89cbe9c71fae93911ee25febdfc95fbdeb4a3 /src/test/java | |
| parent | f67078f6cf8eb1d1da9dad8bb043344b13387ada (diff) | |
Add LLVM array operand
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java | 18 | ||||
| -rw-r--r-- | src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java | 7 |
2 files changed, 25 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 4d3fa350..64221e38 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 @@ -4,6 +4,8 @@ import org.junit.jupiter.api.Test; import org.shedlang.compiler.backends.llvm.ir.ast.LlvmIr; import org.shedlang.compiler.backends.llvm.ir.ast.types.LlvmTypes; +import java.util.List; + import static org.shedlang.compiler.backends.llvm.ir.LlvmIrSerializerTesting.serializeToString; import static org.zwobble.precisely.AssertThat.assertThat; import static org.zwobble.precisely.Matchers.equalTo; @@ -37,6 +39,22 @@ public class LlvmIrSerializerOperandsTests { } @Test + public void arrayIsSerializedAsTypedOperandsInArray() { + var operand = LlvmIr.operandArray( + LlvmTypes.INT_64, + List.of( + LlvmIr.operandInt(1), + LlvmIr.operandInt(2), + 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 470406e4..887bc655 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 @@ -35,6 +35,13 @@ public class LlvmIr { return new LlvmBasicBlock(Optional.of(name), instructions, terminator); } + public static LlvmOperand operandArray( + LlvmType type, + List<LlvmOperand> elements + ) { + return new LlvmOperandArray(type, elements); + } + public static LlvmOperand operandInt(long value) { return new LlvmOperandInt(value); } |
