diff options
| author | Kalle Raiskila <kalle.raiskila@nokia.com> | 2010-11-23 13:27:59 +0000 |
|---|---|---|
| committer | Kalle Raiskila <kalle.raiskila@nokia.com> | 2010-11-23 13:27:59 +0000 |
| commit | e1b6c273b82609a83b5aa07a70a2941ce731f7c6 (patch) | |
| tree | d6919f128d5a77715a23d5c9b2f152006052ddad /llvm/test/CodeGen/CellSPU | |
| parent | f6c05b1d01b06da75eadd1de6445b1fcddcb0196 (diff) | |
| download | bcm5719-llvm-e1b6c273b82609a83b5aa07a70a2941ce731f7c6.tar.gz bcm5719-llvm-e1b6c273b82609a83b5aa07a70a2941ce731f7c6.zip | |
Division by pow-of-2 is not cheap on SPU, do it with
shifts.
llvm-svn: 120022
Diffstat (limited to 'llvm/test/CodeGen/CellSPU')
| -rw-r--r-- | llvm/test/CodeGen/CellSPU/div_ops.ll | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/CellSPU/div_ops.ll b/llvm/test/CodeGen/CellSPU/div_ops.ll new file mode 100644 index 00000000000..0c93d83ca76 --- /dev/null +++ b/llvm/test/CodeGen/CellSPU/div_ops.ll @@ -0,0 +1,22 @@ +; RUN: llc --march=cellspu %s -o - | FileCheck %s + +; signed division rounds towards zero, rotma don't. +define i32 @sdivide (i32 %val ) +{ +; CHECK: rotmai +; CHECK: rotmi +; CHECK: a +; CHECK: rotmai +; CHECK: bi $lr + %rv = sdiv i32 %val, 4 + ret i32 %rv +} + +define i32 @udivide (i32 %val ) +{ +; CHECK: rotmi +; CHECK: bi $lr + %rv = udiv i32 %val, 4 + ret i32 %rv +} + |

