| Venkatraman Govindaraju | acf0233 | 2014-01-01 19:00:10 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -march=sparc -mattr=-v9 | FileCheck %s -check-prefix=V8 | 
| Jakob Stoklund Olesen | ead3b3d | 2014-01-26 06:09:59 +0000 | [diff] [blame] | 2 | ; 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 Govindaraju | a66b314 | 2014-01-11 23:56:13 +0000 | [diff] [blame] | 7 | ; 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 Olesen | ead3b3d | 2014-01-26 06:09:59 +0000 | [diff] [blame] | 10 | ; RUN: llc < %s -march=sparcv9 -mattr=+popc | FileCheck %s -check-prefix=SPARC64 | 
| Chris Lattner | a590d80 | 2006-02-05 05:52:55 +0000 | [diff] [blame] | 11 |  | 
| Tanya Lattner | 3f04773 | 2008-02-19 01:41:04 +0000 | [diff] [blame] | 12 | declare i32 @llvm.ctpop.i32(i32) | 
|  | 13 |  | 
| Venkatraman Govindaraju | acf0233 | 2014-01-01 19:00:10 +0000 | [diff] [blame] | 14 | ; V8-LABEL: test | 
| Benjamin Kramer | c10563d | 2014-01-11 21:06:00 +0000 | [diff] [blame] | 15 | ; V8-NOT: popc | 
| Venkatraman Govindaraju | acf0233 | 2014-01-01 19:00:10 +0000 | [diff] [blame] | 16 |  | 
|  | 17 | ; V9-LABEL: test | 
|  | 18 | ; V9:       srl %o0, 0, %o0 | 
| Venkatraman Govindaraju | ad40dfc | 2014-01-10 02:55:27 +0000 | [diff] [blame] | 19 | ; V9-NEXT:  retl | 
| Venkatraman Govindaraju | acf0233 | 2014-01-01 19:00:10 +0000 | [diff] [blame] | 20 | ; V9-NEXT:  popc %o0, %o0 | 
|  | 21 |  | 
|  | 22 | ; SPARC64-LABEL: test | 
|  | 23 | ; SPARC64:       srl %o0, 0, %o0 | 
| Venkatraman Govindaraju | ad40dfc | 2014-01-10 02:55:27 +0000 | [diff] [blame] | 24 | ; SPARC64:       retl | 
| Venkatraman Govindaraju | acf0233 | 2014-01-01 19:00:10 +0000 | [diff] [blame] | 25 | ; SPARC64:       popc %o0, %o0 | 
|  | 26 |  | 
| Tanya Lattner | 3f04773 | 2008-02-19 01:41:04 +0000 | [diff] [blame] | 27 | define i32 @test(i32 %X) { | 
|  | 28 | %Y = call i32 @llvm.ctpop.i32( i32 %X )         ; <i32> [#uses=1] | 
|  | 29 | ret i32 %Y | 
| Chris Lattner | a590d80 | 2006-02-05 05:52:55 +0000 | [diff] [blame] | 30 | } | 
|  | 31 |  |