| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s --check-prefix=CHECK-VFP |
| Dale Johannesen | 0659c8f | 2010-11-17 21:57:32 +0000 | [diff] [blame] | 2 | ; RUN: llc < %s -mtriple=arm-apple-darwin | FileCheck %s |
| Rafael Espindola | 9e29ec3 | 2006-10-09 17:50:29 +0000 | [diff] [blame] | 3 | |
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 4 | define float @f1(double %x) { |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 5 | ;CHECK-VFP: f1: |
| Jim Grosbach | d7cf55c | 2009-11-09 00:11:35 +0000 | [diff] [blame] | 6 | ;CHECK-VFP: vcvt.f32.f64 |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 7 | ;CHECK: f1: |
| 8 | ;CHECK: truncdfsf2 | ||||
| Rafael Espindola | 9e29ec3 | 2006-10-09 17:50:29 +0000 | [diff] [blame] | 9 | entry: |
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 10 | %tmp1 = fptrunc double %x to float ; <float> [#uses=1] |
| Rafael Espindola | 9e29ec3 | 2006-10-09 17:50:29 +0000 | [diff] [blame] | 11 | ret float %tmp1 |
| 12 | } | ||||
| 13 | |||||
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 14 | define double @f2(float %x) { |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 15 | ;CHECK-VFP: f2: |
| Jim Grosbach | d7cf55c | 2009-11-09 00:11:35 +0000 | [diff] [blame] | 16 | ;CHECK-VFP: vcvt.f64.f32 |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 17 | ;CHECK: f2: |
| 18 | ;CHECK: extendsfdf2 | ||||
| Rafael Espindola | 9e29ec3 | 2006-10-09 17:50:29 +0000 | [diff] [blame] | 19 | entry: |
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 20 | %tmp1 = fpext float %x to double ; <double> [#uses=1] |
| Rafael Espindola | 9e29ec3 | 2006-10-09 17:50:29 +0000 | [diff] [blame] | 21 | ret double %tmp1 |
| 22 | } | ||||
| Rafael Espindola | 57d109f | 2006-10-10 18:55:14 +0000 | [diff] [blame] | 23 | |
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 24 | define i32 @f3(float %x) { |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 25 | ;CHECK-VFP: f3: |
| Jim Grosbach | d7cf55c | 2009-11-09 00:11:35 +0000 | [diff] [blame] | 26 | ;CHECK-VFP: vcvt.s32.f32 |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 27 | ;CHECK: f3: |
| 28 | ;CHECK: fixsfsi | ||||
| Rafael Espindola | 57d109f | 2006-10-10 18:55:14 +0000 | [diff] [blame] | 29 | entry: |
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 30 | %tmp = fptosi float %x to i32 ; <i32> [#uses=1] |
| 31 | ret i32 %tmp | ||||
| Rafael Espindola | 57d109f | 2006-10-10 18:55:14 +0000 | [diff] [blame] | 32 | } |
| 33 | |||||
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 34 | define i32 @f4(float %x) { |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 35 | ;CHECK-VFP: f4: |
| Jim Grosbach | d7cf55c | 2009-11-09 00:11:35 +0000 | [diff] [blame] | 36 | ;CHECK-VFP: vcvt.u32.f32 |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 37 | ;CHECK: f4: |
| 38 | ;CHECK: fixunssfsi | ||||
| Rafael Espindola | 8429e1f | 2006-10-10 20:38:57 +0000 | [diff] [blame] | 39 | entry: |
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 40 | %tmp = fptoui float %x to i32 ; <i32> [#uses=1] |
| 41 | ret i32 %tmp | ||||
| Rafael Espindola | 8429e1f | 2006-10-10 20:38:57 +0000 | [diff] [blame] | 42 | } |
| 43 | |||||
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 44 | define i32 @f5(double %x) { |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 45 | ;CHECK-VFP: f5: |
| Jim Grosbach | d7cf55c | 2009-11-09 00:11:35 +0000 | [diff] [blame] | 46 | ;CHECK-VFP: vcvt.s32.f64 |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 47 | ;CHECK: f5: |
| 48 | ;CHECK: fixdfsi | ||||
| Rafael Espindola | 391af58 | 2006-10-17 20:20:07 +0000 | [diff] [blame] | 49 | entry: |
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 50 | %tmp = fptosi double %x to i32 ; <i32> [#uses=1] |
| 51 | ret i32 %tmp | ||||
| Rafael Espindola | 391af58 | 2006-10-17 20:20:07 +0000 | [diff] [blame] | 52 | } |
| 53 | |||||
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 54 | define i32 @f6(double %x) { |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 55 | ;CHECK-VFP: f6: |
| Jim Grosbach | d7cf55c | 2009-11-09 00:11:35 +0000 | [diff] [blame] | 56 | ;CHECK-VFP: vcvt.u32.f64 |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 57 | ;CHECK: f6: |
| 58 | ;CHECK: fixunsdfsi | ||||
| Rafael Espindola | 8429e1f | 2006-10-10 20:38:57 +0000 | [diff] [blame] | 59 | entry: |
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 60 | %tmp = fptoui double %x to i32 ; <i32> [#uses=1] |
| 61 | ret i32 %tmp | ||||
| Rafael Espindola | 8429e1f | 2006-10-10 20:38:57 +0000 | [diff] [blame] | 62 | } |
| Rafael Espindola | 391af58 | 2006-10-17 20:20:07 +0000 | [diff] [blame] | 63 | |
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 64 | define float @f7(i32 %a) { |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 65 | ;CHECK-VFP: f7: |
| Jim Grosbach | d7cf55c | 2009-11-09 00:11:35 +0000 | [diff] [blame] | 66 | ;CHECK-VFP: vcvt.f32.s32 |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 67 | ;CHECK: f7: |
| 68 | ;CHECK: floatsisf | ||||
| Rafael Espindola | 391af58 | 2006-10-17 20:20:07 +0000 | [diff] [blame] | 69 | entry: |
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 70 | %tmp = sitofp i32 %a to float ; <float> [#uses=1] |
| Rafael Espindola | 391af58 | 2006-10-17 20:20:07 +0000 | [diff] [blame] | 71 | ret float %tmp |
| 72 | } | ||||
| 73 | |||||
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 74 | define double @f8(i32 %a) { |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 75 | ;CHECK-VFP: f8: |
| Jim Grosbach | d7cf55c | 2009-11-09 00:11:35 +0000 | [diff] [blame] | 76 | ;CHECK-VFP: vcvt.f64.s32 |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 77 | ;CHECK: f8: |
| 78 | ;CHECK: floatsidf | ||||
| Rafael Espindola | 391af58 | 2006-10-17 20:20:07 +0000 | [diff] [blame] | 79 | entry: |
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 80 | %tmp = sitofp i32 %a to double ; <double> [#uses=1] |
| 81 | ret double %tmp | ||||
| Rafael Espindola | 391af58 | 2006-10-17 20:20:07 +0000 | [diff] [blame] | 82 | } |
| 83 | |||||
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 84 | define float @f9(i32 %a) { |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 85 | ;CHECK-VFP: f9: |
| Jim Grosbach | d7cf55c | 2009-11-09 00:11:35 +0000 | [diff] [blame] | 86 | ;CHECK-VFP: vcvt.f32.u32 |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 87 | ;CHECK: f9: |
| 88 | ;CHECK: floatunsisf | ||||
| Rafael Espindola | 391af58 | 2006-10-17 20:20:07 +0000 | [diff] [blame] | 89 | entry: |
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 90 | %tmp = uitofp i32 %a to float ; <float> [#uses=1] |
| Rafael Espindola | 391af58 | 2006-10-17 20:20:07 +0000 | [diff] [blame] | 91 | ret float %tmp |
| 92 | } | ||||
| 93 | |||||
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 94 | define double @f10(i32 %a) { |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 95 | ;CHECK-VFP: f10: |
| Jim Grosbach | d7cf55c | 2009-11-09 00:11:35 +0000 | [diff] [blame] | 96 | ;CHECK-VFP: vcvt.f64.u32 |
| Bob Wilson | 6dd3b9a | 2009-10-09 17:20:46 +0000 | [diff] [blame] | 97 | ;CHECK: f10: |
| 98 | ;CHECK: floatunsidf | ||||
| Rafael Espindola | 391af58 | 2006-10-17 20:20:07 +0000 | [diff] [blame] | 99 | entry: |
| Tanya Lattner | f697c03 | 2008-02-17 20:02:20 +0000 | [diff] [blame] | 100 | %tmp = uitofp i32 %a to double ; <double> [#uses=1] |
| Rafael Espindola | 391af58 | 2006-10-17 20:20:07 +0000 | [diff] [blame] | 101 | ret double %tmp |
| 102 | } | ||||