diff options
| author | gingerBill <ginger.bill.22@gmail.com> | 2016-08-17 18:36:37 +0100 |
|---|---|---|
| committer | gingerBill <ginger.bill.22@gmail.com> | 2016-08-17 18:36:37 +0100 |
| commit | 6f9d11b3810190d606a4be89426e203226e648a5 (patch) | |
| tree | f9de1d468448c2e473f5ecc23cfc847ed21a8457 /src/codegen/print_llvm.cpp | |
| parent | c4fe2ace0595ae51f620aaada1807295e41cd6b5 (diff) | |
Remove scalar*vector; swizzle; broadcast
Diffstat (limited to 'src/codegen/print_llvm.cpp')
| -rw-r--r-- | src/codegen/print_llvm.cpp | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/codegen/print_llvm.cpp b/src/codegen/print_llvm.cpp index d2394f202..f7c6d2651 100644 --- a/src/codegen/print_llvm.cpp +++ b/src/codegen/print_llvm.cpp @@ -164,9 +164,6 @@ void ssa_print_type(gbFile *f, BaseTypeSizes s, Type *t) { case Type_Named: ssa_print_encoded_local(f, t->named.name); break; - case Type_Alias: - ssa_print_type(f, s, t->alias.base); - break; case Type_Tuple: if (t->tuple.variable_count == 1) { ssa_print_type(f, s, t->tuple.variables[0]->type); @@ -635,6 +632,29 @@ void ssa_print_instr(gbFile *f, ssaModule *m, ssaValue *value) { ssa_fprintf(f, "\n"); } break; + case ssaInstr_ShuffleVector: { + auto *sv = &instr->shuffle_vector; + Type *vt = ssa_value_type(sv->vector); + ssa_fprintf(f, "%%%d = shufflevector ", value->id); + + ssa_print_type(f, m->sizes, vt); + ssa_fprintf(f, " "); + ssa_print_value(f, m, sv->vector, vt); + ssa_fprintf(f, ", "); + ssa_print_type(f, m->sizes, vt); + ssa_fprintf(f, " undef,"); + + ssa_fprintf(f, " <%td x i32> <", sv->index_count); + for (isize i = 0; i < sv->index_count; i++) { + if (i > 0) { + ssa_fprintf(f, ", "); + } + ssa_fprintf(f, "i32 %d", sv->indices[i]); + } + ssa_fprintf(f, ">"); + ssa_fprintf(f, "\n"); + } break; + default: { GB_PANIC("<unknown instr> %d\n", instr->kind); |