diff options
| author | gingerBill <ginger.bill.22@gmail.com> | 2016-08-14 19:37:47 +0100 |
|---|---|---|
| committer | gingerBill <ginger.bill.22@gmail.com> | 2016-08-14 19:37:47 +0100 |
| commit | 0edae8c8482dd4763737b01deb09a4732a2f35ec (patch) | |
| tree | c15190cd0c55fa1e3db06591af89225d5087bf8e /src/codegen/print_llvm.cpp | |
| parent | b44bc99b889bb07dfe4f843ddeefd7483e0fba82 (diff) | |
Vector index works with booleans now.
Diffstat (limited to 'src/codegen/print_llvm.cpp')
| -rw-r--r-- | src/codegen/print_llvm.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
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; |