mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-24 20:29:53 +00:00
Add an explicit test of the auto-upgrade functionality for the new
intrinsic syntax. Now that this is explicitly covered, I plan to upgrade the existing test suite to use an explicit immediate. Note that I plan to specify 'true' in most places rather than the auto-upgraded value as that is the far more common value to end up here as that is the value coming from GCC's builtins. The only place I'm likely to put a 'false' in is when testing x86 which actually has different instructions for the two variants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146369 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a56f5581ec
commit
2106badea3
44
test/Assembler/auto_upgrade_intrinsics.ll
Normal file
44
test/Assembler/auto_upgrade_intrinsics.ll
Normal file
@ -0,0 +1,44 @@
|
||||
; Test to make sure intrinsics are automatically upgraded.
|
||||
; RUN: llvm-as < %s | llvm-dis | FileCheck %s
|
||||
|
||||
declare i8 @llvm.ctlz.i8(i8)
|
||||
declare i16 @llvm.ctlz.i16(i16)
|
||||
declare i32 @llvm.ctlz.i32(i32)
|
||||
declare i42 @llvm.ctlz.i42(i42) ; Not a power-of-2
|
||||
|
||||
define void @test.ctlz(i8 %a, i16 %b, i32 %c, i42 %d) {
|
||||
; CHECK: @test.ctlz
|
||||
|
||||
entry:
|
||||
; CHECK: call i8 @llvm.ctlz.i8(i8 %a, i1 false)
|
||||
call i8 @llvm.ctlz.i8(i8 %a)
|
||||
; CHECK: call i16 @llvm.ctlz.i16(i16 %b, i1 false)
|
||||
call i16 @llvm.ctlz.i16(i16 %b)
|
||||
; CHECK: call i32 @llvm.ctlz.i32(i32 %c, i1 false)
|
||||
call i32 @llvm.ctlz.i32(i32 %c)
|
||||
; CHECK: call i42 @llvm.ctlz.i42(i42 %d, i1 false)
|
||||
call i42 @llvm.ctlz.i42(i42 %d)
|
||||
|
||||
ret void
|
||||
}
|
||||
|
||||
declare i8 @llvm.cttz.i8(i8)
|
||||
declare i16 @llvm.cttz.i16(i16)
|
||||
declare i32 @llvm.cttz.i32(i32)
|
||||
declare i42 @llvm.cttz.i42(i42) ; Not a power-of-2
|
||||
|
||||
define void @test.cttz(i8 %a, i16 %b, i32 %c, i42 %d) {
|
||||
; CHECK: @test.cttz
|
||||
|
||||
entry:
|
||||
; CHECK: call i8 @llvm.cttz.i8(i8 %a, i1 false)
|
||||
call i8 @llvm.cttz.i8(i8 %a)
|
||||
; CHECK: call i16 @llvm.cttz.i16(i16 %b, i1 false)
|
||||
call i16 @llvm.cttz.i16(i16 %b)
|
||||
; CHECK: call i32 @llvm.cttz.i32(i32 %c, i1 false)
|
||||
call i32 @llvm.cttz.i32(i32 %c)
|
||||
; CHECK: call i42 @llvm.cttz.i42(i42 %d, i1 false)
|
||||
call i42 @llvm.cttz.i42(i42 %d)
|
||||
|
||||
ret void
|
||||
}
|
Loading…
Reference in New Issue
Block a user