You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.207
Former-commit-id: 3b152f462918d427ce18620a2cbe4f8b79650449
This commit is contained in:
parent
8e12397d70
commit
eb85e2fc17
135
external/llvm/test/CodeGen/Hexagon/bitmanip.ll
vendored
135
external/llvm/test/CodeGen/Hexagon/bitmanip.ll
vendored
@ -1,135 +0,0 @@
|
||||
; RUN: llc -march=hexagon < %s | FileCheck %s
|
||||
|
||||
; CHECK-LABEL: popcount_16
|
||||
; CHECK: zxth
|
||||
; CHECK: popcount
|
||||
define i16 @popcount_16(i16 %p) #0 {
|
||||
%t = call i16 @llvm.ctpop.i16(i16 %p) #0
|
||||
ret i16 %t
|
||||
}
|
||||
|
||||
; CHECK-LABEL: popcount_32
|
||||
; CHECK: popcount
|
||||
define i32 @popcount_32(i32 %p) #0 {
|
||||
%t = call i32 @llvm.ctpop.i32(i32 %p) #0
|
||||
ret i32 %t
|
||||
}
|
||||
|
||||
; CHECK-LABEL: popcount_64
|
||||
; CHECK: popcount
|
||||
define i64 @popcount_64(i64 %p) #0 {
|
||||
%t = call i64 @llvm.ctpop.i64(i64 %p) #0
|
||||
ret i64 %t
|
||||
}
|
||||
|
||||
; CHECK-LABEL: ctlz_16
|
||||
; CHECK: [[REG0:r[0-9]+]] = zxth
|
||||
; CHECK: [[REG1:r[0-9]+]] = cl0([[REG0]])
|
||||
; CHECK: add([[REG1]],#-16)
|
||||
define i16 @ctlz_16(i16 %p) #0 {
|
||||
%t = call i16 @llvm.ctlz.i16(i16 %p, i1 true) #0
|
||||
ret i16 %t
|
||||
}
|
||||
|
||||
; CHECK-LABEL: ctlz_32
|
||||
; CHECK: cl0
|
||||
define i32 @ctlz_32(i32 %p) #0 {
|
||||
%t = call i32 @llvm.ctlz.i32(i32 %p, i1 true) #0
|
||||
ret i32 %t
|
||||
}
|
||||
|
||||
; CHECK-LABEL: ctlz_64
|
||||
; CHECK: cl0
|
||||
define i64 @ctlz_64(i64 %p) #0 {
|
||||
%t = call i64 @llvm.ctlz.i64(i64 %p, i1 true) #0
|
||||
ret i64 %t
|
||||
}
|
||||
|
||||
; CHECK-LABEL: cttz_16
|
||||
; CHECK: ct0
|
||||
define i16 @cttz_16(i16 %p) #0 {
|
||||
%t = call i16 @llvm.cttz.i16(i16 %p, i1 true) #0
|
||||
ret i16 %t
|
||||
}
|
||||
|
||||
; CHECK-LABEL: cttz_32
|
||||
; CHECK: ct0
|
||||
define i32 @cttz_32(i32 %p) #0 {
|
||||
%t = call i32 @llvm.cttz.i32(i32 %p, i1 true) #0
|
||||
ret i32 %t
|
||||
}
|
||||
|
||||
; CHECK-LABEL: cttz_64
|
||||
; CHECK: ct0
|
||||
define i64 @cttz_64(i64 %p) #0 {
|
||||
%t = call i64 @llvm.cttz.i64(i64 %p, i1 true) #0
|
||||
ret i64 %t
|
||||
}
|
||||
|
||||
; CHECK-LABEL: brev_16
|
||||
; CHECK: [[REG:r[0-9]+]] = brev
|
||||
; CHECK: lsr([[REG]],#16)
|
||||
define i16 @brev_16(i16 %p) #0 {
|
||||
%t = call i16 @llvm.bitreverse.i16(i16 %p) #0
|
||||
ret i16 %t
|
||||
}
|
||||
|
||||
; CHECK-LABEL: brev_32
|
||||
; CHECK: brev
|
||||
define i32 @brev_32(i32 %p) #0 {
|
||||
%t = call i32 @llvm.bitreverse.i32(i32 %p) #0
|
||||
ret i32 %t
|
||||
}
|
||||
|
||||
; CHECK-LABEL: brev_64
|
||||
; CHECK: brev
|
||||
define i64 @brev_64(i64 %p) #0 {
|
||||
%t = call i64 @llvm.bitreverse.i64(i64 %p) #0
|
||||
ret i64 %t
|
||||
}
|
||||
|
||||
; CHECK-LABEL: bswap_16
|
||||
; CHECK: [[REG:r[0-9]+]] = swiz
|
||||
; CHECK: lsr([[REG]],#16)
|
||||
define i16 @bswap_16(i16 %p) #0 {
|
||||
%t = call i16 @llvm.bswap.i16(i16 %p) #0
|
||||
ret i16 %t
|
||||
}
|
||||
|
||||
; CHECK-LABEL: bswap_32
|
||||
; CHECK: swiz
|
||||
define i32 @bswap_32(i32 %p) #0 {
|
||||
%t = call i32 @llvm.bswap.i32(i32 %p) #0
|
||||
ret i32 %t
|
||||
}
|
||||
|
||||
; CHECK-LABEL: bswap_64
|
||||
; CHECK: swiz
|
||||
; CHECK: swiz
|
||||
; CHECK: combine
|
||||
define i64 @bswap_64(i64 %p) #0 {
|
||||
%t = call i64 @llvm.bswap.i64(i64 %p) #0
|
||||
ret i64 %t
|
||||
}
|
||||
|
||||
declare i16 @llvm.ctpop.i16(i16) #0
|
||||
declare i32 @llvm.ctpop.i32(i32) #0
|
||||
declare i64 @llvm.ctpop.i64(i64) #0
|
||||
|
||||
declare i16 @llvm.ctlz.i16(i16, i1) #0
|
||||
declare i32 @llvm.ctlz.i32(i32, i1) #0
|
||||
declare i64 @llvm.ctlz.i64(i64, i1) #0
|
||||
|
||||
declare i16 @llvm.cttz.i16(i16, i1) #0
|
||||
declare i32 @llvm.cttz.i32(i32, i1) #0
|
||||
declare i64 @llvm.cttz.i64(i64, i1) #0
|
||||
|
||||
declare i16 @llvm.bitreverse.i16(i16) #0
|
||||
declare i32 @llvm.bitreverse.i32(i32) #0
|
||||
declare i64 @llvm.bitreverse.i64(i64) #0
|
||||
|
||||
declare i16 @llvm.bswap.i16(i16) #0
|
||||
declare i32 @llvm.bswap.i32(i32) #0
|
||||
declare i64 @llvm.bswap.i64(i64) #0
|
||||
|
||||
attributes #0 = { nounwind readnone }
|
Reference in New Issue
Block a user