blob: 3a373404b9915801c462b34a3484a5bbd6adf087 [file] [log] [blame]
Venkatraman Govindarajuacf02332014-01-01 19:00:10 +00001; RUN: llc < %s -march=sparc -mattr=-v9 | FileCheck %s -check-prefix=V8
Jakob Stoklund Olesenead3b3d2014-01-26 06:09:59 +00002; RUN: llc < %s -march=sparc -mattr=+v9,+popc | FileCheck %s -check-prefix=V9
3; RUN: llc < %s -march=sparc -mcpu=v9 | FileCheck %s -check-prefix=V8
4; RUN: llc < %s -march=sparc -mcpu=ultrasparc | FileCheck %s -check-prefix=V8
5; RUN: llc < %s -march=sparc -mcpu=ultrasparc3 | FileCheck %s -check-prefix=V8
6; RUN: llc < %s -march=sparc -mcpu=niagara | FileCheck %s -check-prefix=V8
Venkatraman Govindarajua66b3142014-01-11 23:56:13 +00007; RUN: llc < %s -march=sparc -mcpu=niagara2 | FileCheck %s -check-prefix=V9
8; RUN: llc < %s -march=sparc -mcpu=niagara3 | FileCheck %s -check-prefix=V9
9; RUN: llc < %s -march=sparc -mcpu=niagara4 | FileCheck %s -check-prefix=V9
Jakob Stoklund Olesenead3b3d2014-01-26 06:09:59 +000010; RUN: llc < %s -march=sparcv9 -mattr=+popc | FileCheck %s -check-prefix=SPARC64
Chris Lattnera590d802006-02-05 05:52:55 +000011
Tanya Lattner3f047732008-02-19 01:41:04 +000012declare i32 @llvm.ctpop.i32(i32)
13
Venkatraman Govindarajuacf02332014-01-01 19:00:10 +000014; V8-LABEL: test
Benjamin Kramerc10563d2014-01-11 21:06:00 +000015; V8-NOT: popc
Venkatraman Govindarajuacf02332014-01-01 19:00:10 +000016
17; V9-LABEL: test
18; V9: srl %o0, 0, %o0
Venkatraman Govindarajuad40dfc2014-01-10 02:55:27 +000019; V9-NEXT: retl
Venkatraman Govindarajuacf02332014-01-01 19:00:10 +000020; V9-NEXT: popc %o0, %o0
21
22; SPARC64-LABEL: test
23; SPARC64: srl %o0, 0, %o0
Venkatraman Govindarajuad40dfc2014-01-10 02:55:27 +000024; SPARC64: retl
Venkatraman Govindarajuacf02332014-01-01 19:00:10 +000025; SPARC64: popc %o0, %o0
26
Tanya Lattner3f047732008-02-19 01:41:04 +000027define i32 @test(i32 %X) {
28 %Y = call i32 @llvm.ctpop.i32( i32 %X ) ; <i32> [#uses=1]
29 ret i32 %Y
Chris Lattnera590d802006-02-05 05:52:55 +000030}
31