aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
-rw-r--r--sparse-llvm.c4
-rw-r--r--validation/backend/cmp-ops.c10
2 files changed, 12 insertions, 2 deletions
diff --git a/sparse-llvm.c b/sparse-llvm.c
index e3d8883a..6402666e 100644
--- a/sparse-llvm.c
+++ b/sparse-llvm.c
@@ -516,10 +516,10 @@ static void output_op_binary(struct function *fn, struct instruction *insn)
target = LLVMBuildICmp(fn->builder, LLVMIntSGT, lhs, rhs, target_name);
break;
case OP_SET_B:
- assert(0);
+ target = LLVMBuildICmp(fn->builder, LLVMIntULT, lhs, rhs, target_name);
break;
case OP_SET_A:
- assert(0);
+ target = LLVMBuildICmp(fn->builder, LLVMIntUGT, lhs, rhs, target_name);
break;
case OP_SET_BE:
assert(0);
diff --git a/validation/backend/cmp-ops.c b/validation/backend/cmp-ops.c
index 5a89bee7..b1ad2275 100644
--- a/validation/backend/cmp-ops.c
+++ b/validation/backend/cmp-ops.c
@@ -18,6 +18,16 @@ static int setg(int x, int y)
return x > y;
}
+static int setb(unsigned int x, unsigned int y)
+{
+ return x < y;
+}
+
+static int seta(unsigned int x, unsigned int y)
+{
+ return x > y;
+}
+
/*
* check-name: Comparison operator code generation
* check-command: ./sparsec -c $file -o tmp.o