aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java13
-rw-r--r--src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java9
2 files changed, 22 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java
index 86a5b0d7..99eda802 100644
--- a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java
+++ b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java
@@ -181,6 +181,19 @@ public class LlvmIrSerializerInstructionTests {
assertThat(result, equalTo("store i64 42, ptr %target"));
}
+ @Test
+ public void subIsSerializedWithTypeAndOperands() throws IOException {
+ var instruction = LlvmIr.sub(
+ LlvmIr.variableLocal("x"),
+ LlvmTypes.INT_64,
+ LlvmIr.variableLocal("y"),
+ LlvmIr.variableLocal("z")
+ );
+
+ var result = serializeToString(instruction, LlvmIrSerializer::serializeInstruction);
+
+ assertThat(result, equalTo("%x = sub i64 %y, %z"));
+ }
@Test
public void zextIsSerialized() throws IOException {
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 59c16bb6..78685315 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
@@ -158,6 +158,15 @@ public class LlvmIr {
return new LlvmStore(type, value, pointer);
}
+ public static LlvmSub sub(
+ LlvmVariable target,
+ LlvmType type,
+ LlvmOperand left,
+ LlvmOperand right
+ ) {
+ return new LlvmSub(target, type, left, right);
+ }
+
public static LlvmTypedOperand typedOperand(LlvmType type, LlvmOperand value) {
return new LlvmTypedOperand(type, value);
}