From a58bc25aa53079ae73234978f218fc96666783c3 Mon Sep 17 00:00:00 2001 From: Josh Berdine Date: Mon, 24 Jun 2019 14:11:45 -0700 Subject: [PATCH] [sledge] Strengthen simplification of convert Exps Summary: Simplify all conversions between castable types to the identity. The backend treats castable types as equal, so distinguishing conversions between them is incomplete. Reviewed By: kren1 Differential Revision: D15972427 fbshipit-source-id: fa09859ac --- sledge/src/llair/exp.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sledge/src/llair/exp.ml b/sledge/src/llair/exp.ml index 30e54d1fb..f06328bb9 100644 --- a/sledge/src/llair/exp.ml +++ b/sledge/src/llair/exp.ml @@ -690,7 +690,7 @@ let minus_one (typ : Typ.t) = let simp_convert signed (dst : Typ.t) src arg = match (dst, arg) with - | _ when Typ.equal dst src -> arg + | _ when Typ.castable dst src -> arg | Integer {bits= m}, Integer {data; typ= Integer {bits= n}} -> integer (Z.clamp ~signed (min m n) data) dst | _ -> App {op= Convert {signed; dst; src}; arg}