diff options
Diffstat (limited to 'test/CodeGen/X86/masked-iv-safe.ll')
-rw-r--r-- | test/CodeGen/X86/masked-iv-safe.ll | 50 |
1 files changed, 41 insertions, 9 deletions
diff --git a/test/CodeGen/X86/masked-iv-safe.ll b/test/CodeGen/X86/masked-iv-safe.ll index a7b036e9b6588..4a4d178f6e418 100644 --- a/test/CodeGen/X86/masked-iv-safe.ll +++ b/test/CodeGen/X86/masked-iv-safe.ll @@ -1,16 +1,13 @@ -; RUN: llc < %s -mcpu=generic -march=x86-64 > %t -; RUN: not grep and %t -; RUN: not grep movz %t -; RUN: not grep sar %t -; RUN: not grep shl %t -; RUN: grep add %t | count 1 -; RUN: grep inc %t | count 4 -; RUN: grep dec %t | count 2 -; RUN: grep lea %t | count 3 +; RUN: llc < %s -mcpu=generic -march=x86-64 | FileCheck %s ; Optimize away zext-inreg and sext-inreg on the loop induction ; variable using trip-count information. +; CHECK-LABEL: count_up +; CHECK-NOT: {{and|movz|sar|shl}} +; CHECK: inc +; CHECK-NOT: {{and|movz|sar|shl}} +; CHECK: jne define void @count_up(double* %d, i64 %n) nounwind { entry: br label %loop @@ -39,6 +36,11 @@ return: ret void } +; CHECK-LABEL: count_down +; CHECK-NOT: {{and|movz|sar|shl}} +; CHECK: addq +; CHECK-NOT: {{and|movz|sar|shl}} +; CHECK: jne define void @count_down(double* %d, i64 %n) nounwind { entry: br label %loop @@ -67,6 +69,11 @@ return: ret void } +; CHECK-LABEL: count_up_signed +; CHECK-NOT: {{and|movz|sar|shl}} +; CHECK: inc +; CHECK-NOT: {{and|movz|sar|shl}} +; CHECK: jne define void @count_up_signed(double* %d, i64 %n) nounwind { entry: br label %loop @@ -97,6 +104,11 @@ return: ret void } +; CHECK-LABEL: count_down_signed +; CHECK-NOT: {{and|movz|sar|shl}} +; CHECK: addq +; CHECK-NOT: {{and|movz|sar|shl}} +; CHECK: jne define void @count_down_signed(double* %d, i64 %n) nounwind { entry: br label %loop @@ -127,6 +139,11 @@ return: ret void } +; CHECK-LABEL: another_count_up +; CHECK-NOT: {{and|movz|sar|shl}} +; CHECK: addq +; CHECK-NOT: {{and|movz|sar|shl}} +; CHECK: jne define void @another_count_up(double* %d, i64 %n) nounwind { entry: br label %loop @@ -155,6 +172,11 @@ return: ret void } +; CHECK-LABEL: another_count_down +; CHECK-NOT: {{and|movz|sar|shl}} +; CHECK: decq +; CHECK-NOT: {{and|movz|sar|shl}} +; CHECK: jne define void @another_count_down(double* %d, i64 %n) nounwind { entry: br label %loop @@ -183,6 +205,11 @@ return: ret void } +; CHECK-LABEL: another_count_up_signed +; CHECK-NOT: {{and|movz|sar|shl}} +; CHECK: addq +; CHECK-NOT: {{and|movz|sar|shl}} +; CHECK: jne define void @another_count_up_signed(double* %d, i64 %n) nounwind { entry: br label %loop @@ -213,6 +240,11 @@ return: ret void } +; CHECK-LABEL: another_count_down_signed +; CHECK-NOT: {{and|movz|sar|shl}} +; CHECK: decq +; CHECK-NOT: {{and|movz|sar|shl}} +; CHECK: jne define void @another_count_down_signed(double* %d, i64 %n) nounwind { entry: br label %loop |