From b77ea94976aa14f40e416b8c51769e291c79b82c Mon Sep 17 00:00:00 2001 From: Ginger Bill Date: Mon, 25 Sep 2017 22:59:59 +0100 Subject: Fix issue #108 --- src/ir.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/ir.cpp') diff --git a/src/ir.cpp b/src/ir.cpp index 29152e5b6..97b8f787d 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -4761,6 +4761,16 @@ irValue *ir_build_expr(irProcedure *proc, AstNode *expr) { case Token_CmpAnd: case Token_CmpOr: + if (is_type_vector(type)) { + TokenKind op = {}; + switch (be->op.kind) { + case Token_CmpAnd: op = Token_And; break; + case Token_CmpOr: op = Token_Or; break; + } + irValue *right = ir_build_expr(proc, be->right); + return ir_emit_arith(proc, op, left, right, type); + } + return ir_emit_logical_binary_expr(proc, expr); default: -- cgit v1.2.3