Reid Spencer | 69ccadd | 2006-12-02 04:23:10 +0000 | [diff] [blame] | 1 | ; RUN: llvm-upgrade < %s | llvm-as | llvm-dis > %t1.ll |
Tanya Lattner | 3f7706b | 2004-11-07 06:08:43 +0000 | [diff] [blame] | 2 | ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll |
| 3 | ; RUN: diff %t1.ll %t2.ll |
| 4 | |
Chris Lattner | 86ee776 | 2004-06-11 02:29:57 +0000 | [diff] [blame] | 5 | |
Reid Spencer | fd57ad7 | 2006-01-19 01:17:06 +0000 | [diff] [blame] | 6 | declare bool %llvm.isunordered.f32(float,float) |
| 7 | declare bool %llvm.isunordered.f64(double,double) |
Alkis Evlogimenos | 9685372 | 2004-06-12 19:19:14 +0000 | [diff] [blame] | 8 | |
Chris Lattner | 47adf21 | 2005-02-28 19:31:42 +0000 | [diff] [blame] | 9 | declare void %llvm.prefetch(sbyte*, uint, uint) |
| 10 | |
Reid Spencer | a3c533a | 2007-04-01 07:36:28 +0000 | [diff] [blame^] | 11 | declare uint %llvm.ctpop.i8(ubyte) |
| 12 | declare uint %llvm.ctpop.i16(ushort) |
Reid Spencer | fd57ad7 | 2006-01-19 01:17:06 +0000 | [diff] [blame] | 13 | declare uint %llvm.ctpop.i32(uint) |
Reid Spencer | a3c533a | 2007-04-01 07:36:28 +0000 | [diff] [blame^] | 14 | declare uint %llvm.ctpop.i64(ulong) |
Reid Spencer | fd57ad7 | 2006-01-19 01:17:06 +0000 | [diff] [blame] | 15 | |
Reid Spencer | a3c533a | 2007-04-01 07:36:28 +0000 | [diff] [blame^] | 16 | declare uint %llvm.cttz.i8(ubyte) |
| 17 | declare uint %llvm.cttz.i16(ushort) |
Reid Spencer | fd57ad7 | 2006-01-19 01:17:06 +0000 | [diff] [blame] | 18 | declare uint %llvm.cttz.i32(uint) |
Reid Spencer | a3c533a | 2007-04-01 07:36:28 +0000 | [diff] [blame^] | 19 | declare uint %llvm.cttz.i64(ulong) |
Reid Spencer | fd57ad7 | 2006-01-19 01:17:06 +0000 | [diff] [blame] | 20 | |
Reid Spencer | a3c533a | 2007-04-01 07:36:28 +0000 | [diff] [blame^] | 21 | declare uint %llvm.ctlz.i8(ubyte) |
| 22 | declare uint %llvm.ctlz.i16(ushort) |
Reid Spencer | fd57ad7 | 2006-01-19 01:17:06 +0000 | [diff] [blame] | 23 | declare uint %llvm.ctlz.i32(uint) |
Reid Spencer | a3c533a | 2007-04-01 07:36:28 +0000 | [diff] [blame^] | 24 | declare uint %llvm.ctlz.i64(ulong) |
Reid Spencer | fd57ad7 | 2006-01-19 01:17:06 +0000 | [diff] [blame] | 25 | |
Reid Spencer | fd57ad7 | 2006-01-19 01:17:06 +0000 | [diff] [blame] | 26 | declare float %llvm.sqrt.f32(float) |
| 27 | declare double %llvm.sqrt.f64(double) |
Andrew Lenharth | 279a7b2 | 2005-05-03 16:49:48 +0000 | [diff] [blame] | 28 | |
Alkis Evlogimenos | fd39b30 | 2004-06-11 01:06:40 +0000 | [diff] [blame] | 29 | implementation |
| 30 | |
| 31 | ; Test llvm intrinsics |
| 32 | ; |
Chris Lattner | 86ee776 | 2004-06-11 02:29:57 +0000 | [diff] [blame] | 33 | void %libm() { |
Reid Spencer | fd57ad7 | 2006-01-19 01:17:06 +0000 | [diff] [blame] | 34 | call bool %llvm.isunordered.f32(float 1.0, float 2.0) |
| 35 | call bool %llvm.isunordered.f64(double 3.0, double 4.0) |
| 36 | |
Chris Lattner | 47adf21 | 2005-02-28 19:31:42 +0000 | [diff] [blame] | 37 | call void %llvm.prefetch(sbyte* null, uint 1, uint 3) |
Reid Spencer | fd57ad7 | 2006-01-19 01:17:06 +0000 | [diff] [blame] | 38 | |
Reid Spencer | fd57ad7 | 2006-01-19 01:17:06 +0000 | [diff] [blame] | 39 | call float %llvm.sqrt.f32(float 5.0) |
| 40 | call double %llvm.sqrt.f64(double 6.0) |
| 41 | |
Reid Spencer | a3c533a | 2007-04-01 07:36:28 +0000 | [diff] [blame^] | 42 | call uint %llvm.ctpop.i8(ubyte 10) |
| 43 | call uint %llvm.ctpop.i16(ushort 11) |
Reid Spencer | fd57ad7 | 2006-01-19 01:17:06 +0000 | [diff] [blame] | 44 | call uint %llvm.ctpop.i32(uint 12) |
Reid Spencer | a3c533a | 2007-04-01 07:36:28 +0000 | [diff] [blame^] | 45 | call uint %llvm.ctpop.i64(ulong 13) |
Reid Spencer | fd57ad7 | 2006-01-19 01:17:06 +0000 | [diff] [blame] | 46 | |
Reid Spencer | a3c533a | 2007-04-01 07:36:28 +0000 | [diff] [blame^] | 47 | call uint %llvm.ctlz.i8(ubyte 14) |
| 48 | call uint %llvm.ctlz.i16(ushort 15) |
Reid Spencer | fd57ad7 | 2006-01-19 01:17:06 +0000 | [diff] [blame] | 49 | call uint %llvm.ctlz.i32(uint 16) |
Reid Spencer | a3c533a | 2007-04-01 07:36:28 +0000 | [diff] [blame^] | 50 | call uint %llvm.ctlz.i64(ulong 17) |
Reid Spencer | fd57ad7 | 2006-01-19 01:17:06 +0000 | [diff] [blame] | 51 | |
Reid Spencer | a3c533a | 2007-04-01 07:36:28 +0000 | [diff] [blame^] | 52 | call uint %llvm.cttz.i8(ubyte 18) |
| 53 | call uint %llvm.cttz.i16(ushort 19) |
Reid Spencer | fd57ad7 | 2006-01-19 01:17:06 +0000 | [diff] [blame] | 54 | call uint %llvm.cttz.i32(uint 20) |
Reid Spencer | a3c533a | 2007-04-01 07:36:28 +0000 | [diff] [blame^] | 55 | call uint %llvm.cttz.i64(ulong 21) |
Alkis Evlogimenos | fd39b30 | 2004-06-11 01:06:40 +0000 | [diff] [blame] | 56 | ret void |
Chris Lattner | 86ee776 | 2004-06-11 02:29:57 +0000 | [diff] [blame] | 57 | } |
Reid Spencer | 87bb7c6 | 2005-05-09 04:47:32 +0000 | [diff] [blame] | 58 | |
| 59 | ; FIXME: test ALL the intrinsics in this file. |