diff options
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerFunctionDefinitionTests.java | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerFunctionDefinitionTests.java b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerFunctionDefinitionTests.java index 4e1f23bc..c5f62da1 100644 --- a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerFunctionDefinitionTests.java +++ b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerFunctionDefinitionTests.java @@ -16,14 +16,38 @@ public class LlvmIrSerializerFunctionDefinitionTests { public void canSerializeFunctionDefinitions() { var definition = new LlvmFunctionDefinition( "f", - LlvmTypes.VOID, + LlvmTypes.INT_32, List.of(LlvmIr.param(LlvmTypes.INT_64, "x"), LlvmIr.param(LlvmTypes.INT_64, "y")), - List.of() + List.of( + LlvmIr.basicBlock( + List.of( + LlvmIr.add( + LlvmIr.variableLocal("a"), + LlvmTypes.INT_64, + LlvmIr.variableLocal("x"), + LlvmIr.variableLocal("y") + ), + + LlvmIr.add( + LlvmIr.variableLocal("b"), + LlvmTypes.INT_64, + LlvmIr.variableLocal("y"), + LlvmIr.variableLocal("x") + ) + ), + LlvmIr.returnValue(LlvmTypes.INT_32, LlvmIr.operandInt(42)) + ) + ) ); var result = serializeToString(definition, LlvmIrSerializer::serializeTopLevelEntity); assertThat(result, equalTo(""" + define i32 @f(i64 %x, i64 %y) { + $a = add i64 $x, $y + $b = add i64 $y, $x + ret i32 42 + } """)); } } |
