diff options
| author | Sanjay Patel <spatel@rotateright.com> | 2015-08-10 23:07:26 +0000 |
|---|---|---|
| committer | Sanjay Patel <spatel@rotateright.com> | 2015-08-10 23:07:26 +0000 |
| commit | d967a878fab52807fe38d47bbe711ebf26d6f49f (patch) | |
| tree | 398a8f4f6119cd0a4e8617574b438d02a507bae5 /llvm/test | |
| parent | 0bc068728ec4cc87361c2425225611731b364803 (diff) | |
| download | bcm5719-llvm-d967a878fab52807fe38d47bbe711ebf26d6f49f.tar.gz bcm5719-llvm-d967a878fab52807fe38d47bbe711ebf26d6f49f.zip | |
fix minsize detection: minsize attribute implies optimizing for size
llvm-svn: 244528
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/CodeGen/X86/tail-opts.ll | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/tail-opts.ll b/llvm/test/CodeGen/X86/tail-opts.ll index f590176d981..c522ba60d6b 100644 --- a/llvm/test/CodeGen/X86/tail-opts.ll +++ b/llvm/test/CodeGen/X86/tail-opts.ll @@ -371,6 +371,44 @@ return: ret void } +; two_minsize - Same as two, but with minsize instead of optsize. + +; CHECK-LABEL: two_minsize: +; CHECK-NOT: XYZ +; CHECK: ret +; CHECK: movl $0, XYZ(%rip) +; CHECK: movl $1, XYZ(%rip) +; CHECK-NOT: XYZ + +define void @two_minsize() nounwind minsize { +entry: + %0 = icmp eq i32 undef, 0 + br i1 %0, label %bbx, label %bby + +bby: + switch i32 undef, label %bb7 [ + i32 16, label %return + ] + +bb7: + store volatile i32 0, i32* @XYZ + store volatile i32 1, i32* @XYZ + unreachable + +bbx: + switch i32 undef, label %bb12 [ + i32 128, label %return + ] + +bb12: + store volatile i32 0, i32* @XYZ + store volatile i32 1, i32* @XYZ + unreachable + +return: + ret void +} + ; two_nosize - Same as two, but without the optsize attribute. ; Now two instructions are enough to be tail-duplicated. |

