From 3c869802fb06aa4fd2bc3d67fb84f2350edefb2c Mon Sep 17 00:00:00 2001 From: Matt Pharr Date: Wed, 6 Jun 2012 10:03:03 -0700 Subject: [PATCH] Always store multiply-used vector compares in temporary variables (C++ output). --- cbackend.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cbackend.cpp b/cbackend.cpp index 421fc404..40539dfe 100644 --- a/cbackend.cpp +++ b/cbackend.cpp @@ -380,8 +380,8 @@ namespace { static bool isInlinableInst(const Instruction &I) { // Always inline cmp instructions, even if they are shared by multiple // expressions. GCC generates horrible code if we don't. - if (isa(I)) - return true; + if (isa(I) && isa(I.getType()) == false) + return true; // Must be an expression, must be used exactly once. If it is dead, we // emit it inline where it would go.