From 0e2883020a8797565221610db8664a1a7a62b561 Mon Sep 17 00:00:00 2001 From: Philippe Tillet Date: Wed, 25 May 2022 20:01:19 -0700 Subject: [PATCH] [BACKEND] Fixed typo in alignment analysis (#528) --- lib/codegen/analysis/align.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/codegen/analysis/align.cc b/lib/codegen/analysis/align.cc index 8dabbaf21..37b609228 100644 --- a/lib/codegen/analysis/align.cc +++ b/lib/codegen/analysis/align.cc @@ -507,6 +507,9 @@ std::vector align::populate_starting_multiple_default(ir::value* v) { unsigned get_max_multiple(int val){ if(val == 0) return 1 << 31; + if(val % 128 == 0) return 128; + if(val % 64 == 0) return 64; + if(val % 32 == 0) return 32; if(val % 16 == 0) return 16; if(val % 8 == 0) return 8; if(val % 4 == 0) return 4; @@ -527,7 +530,7 @@ std::vector align::populate_starting_multiple(ir::value *v){ if(auto *x = dynamic_cast(v)) return populate_starting_multiple_binop(x); if(auto *x = dynamic_cast(v)) - return add_to_cache(x, {std::min(x->get_value(), 128)}, starting_multiple_); + return add_to_cache(x, {get_max_multiple(x->get_value())}, starting_multiple_); if(auto *x = dynamic_cast(v)) return add_to_cache(x, {get_max_multiple(x->get_first()->get_value())}, starting_multiple_); if(auto *x = dynamic_cast(v))