[llvm-commits] [llvm] r169604 - in /llvm/trunk/test/Transforms/LoopIdiom: X86/ X86/lit.local.cfg X86/popcnt.ll popcnt.ll

David Tweed david.tweed at arm.com
Fri Dec 7 08:02:06 PST 2012


Note that this isn't necessarily the "ultimately correct" way to deal with
this test, just that it's the minimal thing required to remove the ARM
buildbot regression that was introduced.

Regards,
Dave 

-----Original Message-----
From: llvm-commits-bounces at cs.uiuc.edu
[mailto:llvm-commits-bounces at cs.uiuc.edu] On Behalf Of David Tweed
Sent: 07 December 2012 15:58
To: llvm-commits at cs.uiuc.edu
Subject: [llvm-commits] [llvm] r169604 - in
/llvm/trunk/test/Transforms/LoopIdiom: X86/ X86/lit.local.cfg X86/popcnt.ll
popcnt.ll

Author: davidtweed
Date: Fri Dec  7 09:57:45 2012
New Revision: 169604

URL: http://llvm.org/viewvc/llvm-project?rev=169604&view=rev
Log:
The test unconditionally assumes a particular cpu has a backend build in the
target.
Buildbots for some hosts may choose to build only their own backend in order
to
maximise testing-turnaround time. Move the test into a prefixed directory so
lit's standard "backend specific" suppression can be done.

Added:
    llvm/trunk/test/Transforms/LoopIdiom/X86/
    llvm/trunk/test/Transforms/LoopIdiom/X86/lit.local.cfg
    llvm/trunk/test/Transforms/LoopIdiom/X86/popcnt.ll
      - copied unchanged from r169598,
llvm/trunk/test/Transforms/LoopIdiom/popcnt.ll
Removed:
    llvm/trunk/test/Transforms/LoopIdiom/popcnt.ll

Added: llvm/trunk/test/Transforms/LoopIdiom/X86/lit.local.cfg
URL:
http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopIdiom/X86
/lit.local.cfg?rev=169604&view=auto
============================================================================
==
--- llvm/trunk/test/Transforms/LoopIdiom/X86/lit.local.cfg (added)
+++ llvm/trunk/test/Transforms/LoopIdiom/X86/lit.local.cfg Fri Dec  7
09:57:45 2012
@@ -0,0 +1,6 @@
+config.suffixes = ['.ll', '.c', '.cpp']
+
+targets = set(config.root.targets_to_build.split())
+if not 'X86' in targets:
+    config.unsupported = True
+

Removed: llvm/trunk/test/Transforms/LoopIdiom/popcnt.ll
URL:
http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopIdiom/pop
cnt.ll?rev=169603&view=auto
============================================================================
==
--- llvm/trunk/test/Transforms/LoopIdiom/popcnt.ll (original)
+++ llvm/trunk/test/Transforms/LoopIdiom/popcnt.ll (removed)
@@ -1,76 +0,0 @@
-; RUN: opt -loop-idiom < %s -mtriple=x86_64-apple-darwin -mcpu=corei7 -S |
FileCheck %s
-
-;To recognize this pattern:
-;int popcount(unsigned long long a) {
-;    int c = 0;
-;    while (a) {
-;        c++;
-;        a &= a - 1;
-;    }
-;    return c;
-;}
-; 
-; CHECK: entry
-; CHECK: llvm.ctpop.i64
-; CHECK: ret
-define i32 @popcount(i64 %a) nounwind uwtable readnone ssp {
-entry:
-  %tobool3 = icmp eq i64 %a, 0
-  br i1 %tobool3, label %while.end, label %while.body
-
-while.body:                                       ; preds = %entry,
%while.body
-  %c.05 = phi i32 [ %inc, %while.body ], [ 0, %entry ]
-  %a.addr.04 = phi i64 [ %and, %while.body ], [ %a, %entry ]
-  %inc = add nsw i32 %c.05, 1
-  %sub = add i64 %a.addr.04, -1
-  %and = and i64 %sub, %a.addr.04
-  %tobool = icmp eq i64 %and, 0
-  br i1 %tobool, label %while.end, label %while.body
-
-while.end:                                        ; preds = %while.body,
%entry
-  %c.0.lcssa = phi i32 [ 0, %entry ], [ %inc, %while.body ]
-  ret i32 %c.0.lcssa
-}
-
-; To recognize this pattern:
-;int popcount(unsigned long long a, int mydata1, int mydata2) {
-;    int c = 0;
-;    while (a) {
-;        c++;
-;        a &= a - 1;
-;        mydata1 *= c;
-;        mydata2 *= (int)a;
-;    }
-;    return c + mydata1 + mydata2;
-;}
-; CHECK: entry
-; CHECK: llvm.ctpop.i64
-; CHECK: ret
-define i32 @popcount2(i64 %a, i32 %mydata1, i32 %mydata2) nounwind uwtable
readnone ssp {
-entry:
-  %tobool9 = icmp eq i64 %a, 0
-  br i1 %tobool9, label %while.end, label %while.body
-
-while.body:                                       ; preds = %entry,
%while.body
-  %c.013 = phi i32 [ %inc, %while.body ], [ 0, %entry ]
-  %mydata2.addr.012 = phi i32 [ %mul1, %while.body ], [ %mydata2, %entry ]
-  %mydata1.addr.011 = phi i32 [ %mul, %while.body ], [ %mydata1, %entry ]
-  %a.addr.010 = phi i64 [ %and, %while.body ], [ %a, %entry ]
-  %inc = add nsw i32 %c.013, 1
-  %sub = add i64 %a.addr.010, -1
-  %and = and i64 %sub, %a.addr.010
-  %mul = mul nsw i32 %inc, %mydata1.addr.011
-  %conv = trunc i64 %and to i32
-  %mul1 = mul nsw i32 %conv, %mydata2.addr.012
-  %tobool = icmp eq i64 %and, 0
-  br i1 %tobool, label %while.end, label %while.body
-
-while.end:                                        ; preds = %while.body,
%entry
-  %c.0.lcssa = phi i32 [ 0, %entry ], [ %inc, %while.body ]
-  %mydata2.addr.0.lcssa = phi i32 [ %mydata2, %entry ], [ %mul1,
%while.body ]
-  %mydata1.addr.0.lcssa = phi i32 [ %mydata1, %entry ], [ %mul, %while.body
]
-  %add = add i32 %mydata2.addr.0.lcssa, %mydata1.addr.0.lcssa
-  %add2 = add i32 %add, %c.0.lcssa
-  ret i32 %add2
-}
-


_______________________________________________
llvm-commits mailing list
llvm-commits at cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits








More information about the llvm-commits mailing list