[llvm] r312804 - [X86] Simplify the slow-incdec test and add test cases with optsize.
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 8 10:33:54 PDT 2017
Author: ctopper
Date: Fri Sep 8 10:33:54 2017
New Revision: 312804
URL: http://llvm.org/viewvc/llvm-project?rev=312804&view=rev
Log:
[X86] Simplify the slow-incdec test and add test cases with optsize.
I think we want to consider using inc/dec with optsize.
Modified:
llvm/trunk/test/CodeGen/X86/slow-incdec.ll
Modified: llvm/trunk/test/CodeGen/X86/slow-incdec.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/slow-incdec.ll?rev=312804&r1=312803&r2=312804&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/slow-incdec.ll (original)
+++ llvm/trunk/test/CodeGen/X86/slow-incdec.ll Fri Sep 8 10:33:54 2017
@@ -1,80 +1,67 @@
-; RUN: llc -mtriple=i386-unknown-linux-gnu -mattr=-slow-incdec < %s | FileCheck -check-prefix=INCDEC %s
-; RUN: llc -mtriple=i386-unknown-linux-gnu -mattr=+slow-incdec < %s | FileCheck -check-prefix=ADD %s
-
-; check -mattr=-slow-incdec
-; INCDEC-NOT: addl $-1
-; INCDEC: dec
-; INCDEC-NOT: addl $1
-; INCDEC: inc
-
-; check -mattr=+slow-incdec
-; ADD: addl $-1
-; ADD-NOT: dec
-; ADD: addl $1
-; ADD-NOT: inc
-
-; Function Attrs: nounwind readonly
-define i32 @slow_1(i32* nocapture readonly %a, i32 %s) #0 {
-entry:
- %cmp5 = icmp eq i32 %s, 0
- br i1 %cmp5, label %for.end, label %for.body.preheader
-
-for.body.preheader: ; preds = %entry
- br label %for.body
-
-for.cond: ; preds = %for.body
- %cmp = icmp eq i32 %dec, 0
- br i1 %cmp, label %for.end.loopexit, label %for.body
-
-for.body: ; preds = %for.body.preheader, %for.cond
- %i.06 = phi i32 [ %dec, %for.cond ], [ %s, %for.body.preheader ]
- %arrayidx = getelementptr inbounds i32, i32* %a, i32 %i.06
- %0 = load i32, i32* %arrayidx, align 4, !tbaa !1
- %cmp1 = icmp eq i32 %0, 0
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc -mtriple=i386-unknown-linux-gnu -mattr=-slow-incdec < %s | FileCheck -check-prefix=CHECK -check-prefix=INCDEC %s
+; RUN: llc -mtriple=i386-unknown-linux-gnu -mattr=+slow-incdec < %s | FileCheck -check-prefix=CHECK -check-prefix=ADD %s
+
+define i32 @inc(i32 %x) {
+; INCDEC-LABEL: inc:
+; INCDEC: # BB#0:
+; INCDEC-NEXT: movl {{[0-9]+}}(%esp), %eax
+; INCDEC-NEXT: incl %eax
+; INCDEC-NEXT: retl
;
- %dec = add nsw i32 %i.06, -1
- br i1 %cmp1, label %for.end.loopexit, label %for.cond
-
-for.end.loopexit: ; preds = %for.cond, %for.body
- %i.0.lcssa.ph = phi i32 [ 0, %for.cond ], [ %i.06, %for.body ]
- br label %for.end
-
-for.end: ; preds = %for.end.loopexit, %entry
- %i.0.lcssa = phi i32 [ 0, %entry ], [ %i.0.lcssa.ph, %for.end.loopexit ]
- ret i32 %i.0.lcssa
+; ADD-LABEL: inc:
+; ADD: # BB#0:
+; ADD-NEXT: movl {{[0-9]+}}(%esp), %eax
+; ADD-NEXT: addl $1, %eax
+; ADD-NEXT: retl
+ %r = add i32 %x, 1
+ ret i32 %r
}
-; Function Attrs: nounwind readonly
-define i32 @slow_2(i32* nocapture readonly %a, i32 %s) #0 {
-entry:
- %cmp5 = icmp eq i32 %s, 0
- br i1 %cmp5, label %for.end, label %for.body.preheader
-
-for.body.preheader: ; preds = %entry
- br label %for.body
-
-for.cond: ; preds = %for.body
- %cmp = icmp eq i32 %inc, 0
- br i1 %cmp, label %for.end.loopexit, label %for.body
-
-for.body: ; preds = %for.body.preheader, %for.cond
- %i.06 = phi i32 [ %inc, %for.cond ], [ %s, %for.body.preheader ]
- %arrayidx = getelementptr inbounds i32, i32* %a, i32 %i.06
- %0 = load i32, i32* %arrayidx, align 4, !tbaa !1
- %cmp1 = icmp eq i32 %0, 0
- %inc = add nsw i32 %i.06, 1
- br i1 %cmp1, label %for.end.loopexit, label %for.cond
-
-for.end.loopexit: ; preds = %for.cond, %for.body
- %i.0.lcssa.ph = phi i32 [ 0, %for.cond ], [ %i.06, %for.body ]
- br label %for.end
+define i32 @dec(i32 %x) {
+; INCDEC-LABEL: dec:
+; INCDEC: # BB#0:
+; INCDEC-NEXT: movl {{[0-9]+}}(%esp), %eax
+; INCDEC-NEXT: decl %eax
+; INCDEC-NEXT: retl
+;
+; ADD-LABEL: dec:
+; ADD: # BB#0:
+; ADD-NEXT: movl {{[0-9]+}}(%esp), %eax
+; ADD-NEXT: addl $-1, %eax
+; ADD-NEXT: retl
+ %r = add i32 %x, -1
+ ret i32 %r
+}
-for.end: ; preds = %for.end.loopexit, %entry
- %i.0.lcssa = phi i32 [ 0, %entry ], [ %i.0.lcssa.ph, %for.end.loopexit ]
- ret i32 %i.0.lcssa
+define i32 @inc_size(i32 %x) optsize {
+; INCDEC-LABEL: inc_size:
+; INCDEC: # BB#0:
+; INCDEC-NEXT: movl {{[0-9]+}}(%esp), %eax
+; INCDEC-NEXT: incl %eax
+; INCDEC-NEXT: retl
+;
+; ADD-LABEL: inc_size:
+; ADD: # BB#0:
+; ADD-NEXT: movl {{[0-9]+}}(%esp), %eax
+; ADD-NEXT: addl $1, %eax
+; ADD-NEXT: retl
+ %r = add i32 %x, 1
+ ret i32 %r
}
-!1 = !{!2, !2, i64 0}
-!2 = !{!"int", !3, i64 0}
-!3 = !{!"omnipotent char", !4, i64 0}
-!4 = !{!"Simple C/C++ TBAA"}
+define i32 @dec_size(i32 %x) optsize {
+; INCDEC-LABEL: dec_size:
+; INCDEC: # BB#0:
+; INCDEC-NEXT: movl {{[0-9]+}}(%esp), %eax
+; INCDEC-NEXT: decl %eax
+; INCDEC-NEXT: retl
+;
+; ADD-LABEL: dec_size:
+; ADD: # BB#0:
+; ADD-NEXT: movl {{[0-9]+}}(%esp), %eax
+; ADD-NEXT: addl $-1, %eax
+; ADD-NEXT: retl
+ %r = add i32 %x, -1
+ ret i32 %r
+}
More information about the llvm-commits
mailing list