Home | History | Annotate | Download | only in SPARC
      1 ; RUN: llc < %s -march=sparc -mattr=-v9 | FileCheck %s -check-prefix=V8
      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
      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
     10 ; RUN: llc < %s -march=sparcv9 -mattr=+popc | FileCheck %s -check-prefix=SPARC64
     11 
     12 declare i32 @llvm.ctpop.i32(i32)
     13 
     14 ; V8-LABEL: test
     15 ; V8-NOT: popc
     16 
     17 ; V9-LABEL: test
     18 ; V9:       srl %o0, 0, %o0
     19 ; V9-NEXT:  retl
     20 ; V9-NEXT:  popc %o0, %o0
     21 
     22 ; SPARC64-LABEL: test
     23 ; SPARC64:       srl %o0, 0, %o0
     24 ; SPARC64:       retl
     25 ; SPARC64:       popc %o0, %o0
     26 
     27 define i32 @test(i32 %X) {
     28         %Y = call i32 @llvm.ctpop.i32( i32 %X )         ; <i32> [#uses=1]
     29         ret i32 %Y
     30 }
     31 
     32