aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation/optim
diff options
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2017-06-02 19:13:16 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2018-07-23 01:40:31 +0200
commit9fb59b83b936e16ec1fd600e68cd3cf9f1048fbe (patch)
treed0745ca38636a929b75197fb0905e40caf3e5309 /validation/optim
parent9ac79ec0a88f4f39c90ecab252773b261c9e9721 (diff)
downloadsparse-dev-9fb59b83b936e16ec1fd600e68cd3cf9f1048fbe.tar.gz
big-shift: simplify over-sized OP_SHLs
In the mathematical sense, the result of a left-shift by an amount bigger than the operand size equals zero. Do the corresponding simplification. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'validation/optim')
-rw-r--r--validation/optim/shift-big.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/validation/optim/shift-big.c b/validation/optim/shift-big.c
index 3249854e..da65c5cd 100644
--- a/validation/optim/shift-big.c
+++ b/validation/optim/shift-big.c
@@ -3,6 +3,7 @@ typedef int s32;
static u32 lsr32(u32 a) { return a >> 32; }
static s32 asr32(s32 a) { return a >> 32; }
+static u32 shl32(u32 a) { return a << 32; }
/*
* check-name: optim/shift-big.c
@@ -23,5 +24,11 @@ asr32:
ret.32 %r5
+shl32:
+.L4:
+ <entry-point>
+ ret.32 $0
+
+
* check-output-end
*/