From 0edae8c8482dd4763737b01deb09a4732a2f35ec Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 14 Aug 2016 19:37:47 +0100 Subject: Vector index works with booleans now. --- src/codegen/print_llvm.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src/codegen/print_llvm.cpp') diff --git a/src/codegen/print_llvm.cpp b/src/codegen/print_llvm.cpp index 1535638b0..2c9277f4d 100644 --- a/src/codegen/print_llvm.cpp +++ b/src/codegen/print_llvm.cpp @@ -228,10 +228,8 @@ void ssa_print_exact_value(gbFile *f, ssaModule *m, ExactValue value, Type *type } void ssa_print_block_name(gbFile *f, ssaBlock *b) { - ssa_fprintf(f, "\""); ssa_print_escape_string(f, b->label); - ssa_fprintf(f, " - %d", b->id); - ssa_fprintf(f, "\""); + ssa_fprintf(f, ".-.%d", b->id); } void ssa_print_value(gbFile *f, ssaModule *m, ssaValue *value, Type *type_hint) { @@ -538,6 +536,21 @@ void ssa_print_instr(gbFile *f, ssaModule *m, ssaValue *value) { } break; + case ssaInstr_ExtractElement: { + Type *vt = ssa_value_type(instr->extract_element.vector); + ssa_fprintf(f, "%%%d = extractelement ", value->id); + + ssa_print_type(f, m->sizes, vt); + ssa_fprintf(f, " "); + ssa_print_value(f, m, instr->extract_element.vector, vt); + ssa_fprintf(f, ", "); + Type *it = ssa_value_type(instr->extract_element.index); + ssa_print_type(f, m->sizes, it); + ssa_fprintf(f, " "); + ssa_print_value(f, m, instr->extract_element.index, it); + ssa_fprintf(f, "\n"); + } break; + case ssaInstr_InsertElement: { auto *ie = &instr->insert_element; Type *vt = ssa_value_type(ie->vector); @@ -558,7 +571,6 @@ void ssa_print_instr(gbFile *f, ssaModule *m, ssaValue *value) { ssa_print_value(f, m, ie->index, ssa_value_type(ie->index)); ssa_fprintf(f, "\n"); - } break; -- cgit v1.2.3