diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-10-28 20:00:33 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-10-28 20:00:33 +0000 |
| commit | ef00283425e40d9e78129d28e0c8ad965c3ea66b (patch) | |
| tree | ec5d2693b651e20afa6c6607110eac0dead048d0 /llvm/test/Transforms/SpeculativeExecution/spec-fp.ll | |
| parent | e0ab873a843b5f1320d376d67c9c5683c89a9921 (diff) | |
| download | bcm5719-llvm-ef00283425e40d9e78129d28e0c8ad965c3ea66b.tar.gz bcm5719-llvm-ef00283425e40d9e78129d28e0c8ad965c3ea66b.zip | |
SpeculativeExecution: Allow speculating more inst types
Partial step towards removing the whitelist and only
using TTI's cost.
llvm-svn: 285438
Diffstat (limited to 'llvm/test/Transforms/SpeculativeExecution/spec-fp.ll')
| -rw-r--r-- | llvm/test/Transforms/SpeculativeExecution/spec-fp.ll | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/llvm/test/Transforms/SpeculativeExecution/spec-fp.ll b/llvm/test/Transforms/SpeculativeExecution/spec-fp.ll new file mode 100644 index 00000000000..efab8ab704c --- /dev/null +++ b/llvm/test/Transforms/SpeculativeExecution/spec-fp.ll @@ -0,0 +1,87 @@ +; RUN: opt < %s -S -speculative-execution \ +; RUN: -spec-exec-max-speculation-cost 4 -spec-exec-max-not-hoisted 3 \ +; RUN: | FileCheck %s + +; CHECK-LABEL: @ifThen_fadd( +; CHECK: fadd +; CHECK: br i1 true +define void @ifThen_fadd() { + br i1 true, label %a, label %b + +a: + %x = fadd float undef, undef + br label %b + +b: + ret void +} + +; CHECK-LABEL: @ifThen_fsub( +; CHECK: fsub +; CHECK: br i1 true +define void @ifThen_fsub() { + br i1 true, label %a, label %b + +a: + %x = fsub float undef, undef + br label %b + +b: + ret void +} + +; CHECK-LABEL: @ifThen_fneg( +; CHECK: fsub float -0.0 +; CHECK: br i1 true +define void @ifThen_fneg() { + br i1 true, label %a, label %b + +a: + %x = fsub float -0.0, undef + br label %b + +b: + ret void +} + +; CHECK-LABEL: @ifThen_fmul( +; CHECK: fmul +; CHECK: br i1 true +define void @ifThen_fmul() { + br i1 true, label %a, label %b + +a: + %x = fmul float undef, undef + br label %b + +b: + ret void +} + +; CHECK-LABEL: @ifThen_fdiv( +; CHECK: fdiv +; CHECK: br i1 true +define void @ifThen_fdiv() { + br i1 true, label %a, label %b + +a: + %x = fdiv float undef, undef + br label %b + +b: + ret void +} + +; CHECK-LABEL: @ifThen_frem( +; CHECK: frem +; CHECK: br i1 true +define void @ifThen_frem() { + br i1 true, label %a, label %b + +a: + %x = frem float undef, undef + br label %b + +b: + ret void +} |

