| Tim Northover | 501977e | 2013-08-12 12:43:26 +0000 | [diff] [blame^] | 1 | ; RUN: llc -O1 -mcpu=cortex-a15 -mtriple=armv7-linux-gnueabi -disable-a15-sd-optimization -verify-machineinstrs < %s | FileCheck -check-prefix=CHECK-DISABLED %s |
| 2 | ; RUN: llc -O1 -mcpu=cortex-a15 -mtriple=armv7-linux-gnueabi -verify-machineinstrs < %s | FileCheck -check-prefix=CHECK-ENABLED %s |
| Silviu Baranga | 82dd6ac | 2013-03-15 18:28:25 +0000 | [diff] [blame] | 3 | |
| Stephen Lin | d24ab20 | 2013-07-14 06:24:09 +0000 | [diff] [blame] | 4 | ; CHECK-ENABLED-LABEL: t1: |
| 5 | ; CHECK-DISABLED-LABEL: t1: |
| Silviu Baranga | 82dd6ac | 2013-03-15 18:28:25 +0000 | [diff] [blame] | 6 | define <2 x float> @t1(float %f) { |
| 7 | ; CHECK-ENABLED: vdup.32 d{{[0-9]*}}, d0[0] |
| Silviu Baranga | dc45336 | 2013-03-27 12:38:44 +0000 | [diff] [blame] | 8 | ; CHECK-DISABLED-NOT: vdup.32 d{{[0-9]*}}, d0[0] |
| Silviu Baranga | 82dd6ac | 2013-03-15 18:28:25 +0000 | [diff] [blame] | 9 | %i1 = insertelement <2 x float> undef, float %f, i32 1 |
| 10 | %i2 = fadd <2 x float> %i1, %i1 |
| 11 | ret <2 x float> %i2 |
| 12 | } |
| 13 | |
| Stephen Lin | d24ab20 | 2013-07-14 06:24:09 +0000 | [diff] [blame] | 14 | ; CHECK-ENABLED-LABEL: t2: |
| 15 | ; CHECK-DISABLED-LABEL: t2: |
| Silviu Baranga | 82dd6ac | 2013-03-15 18:28:25 +0000 | [diff] [blame] | 16 | define <4 x float> @t2(float %g, float %f) { |
| 17 | ; CHECK-ENABLED: vdup.32 q{{[0-9]*}}, d0[0] |
| Silviu Baranga | dc45336 | 2013-03-27 12:38:44 +0000 | [diff] [blame] | 18 | ; CHECK-DISABLED-NOT: vdup.32 d{{[0-9]*}}, d0[0] |
| Silviu Baranga | 82dd6ac | 2013-03-15 18:28:25 +0000 | [diff] [blame] | 19 | %i1 = insertelement <4 x float> undef, float %f, i32 1 |
| 20 | %i2 = fadd <4 x float> %i1, %i1 |
| 21 | ret <4 x float> %i2 |
| 22 | } |
| 23 | |
| Stephen Lin | d24ab20 | 2013-07-14 06:24:09 +0000 | [diff] [blame] | 24 | ; CHECK-ENABLED-LABEL: t3: |
| 25 | ; CHECK-DISABLED-LABEL: t3: |
| Silviu Baranga | 82dd6ac | 2013-03-15 18:28:25 +0000 | [diff] [blame] | 26 | define arm_aapcs_vfpcc <2 x float> @t3(float %f) { |
| 27 | ; CHECK-ENABLED: vdup.32 d{{[0-9]*}}, d0[0] |
| Silviu Baranga | dc45336 | 2013-03-27 12:38:44 +0000 | [diff] [blame] | 28 | ; CHECK-DISABLED-NOT: vdup.32 d{{[0-9]*}}, d0[0] |
| Silviu Baranga | 82dd6ac | 2013-03-15 18:28:25 +0000 | [diff] [blame] | 29 | %i1 = insertelement <2 x float> undef, float %f, i32 1 |
| 30 | %i2 = fadd <2 x float> %i1, %i1 |
| 31 | ret <2 x float> %i2 |
| 32 | } |
| 33 | |
| Stephen Lin | d24ab20 | 2013-07-14 06:24:09 +0000 | [diff] [blame] | 34 | ; CHECK-ENABLED-LABEL: t4: |
| 35 | ; CHECK-DISABLED-LABEL: t4: |
| Silviu Baranga | 82dd6ac | 2013-03-15 18:28:25 +0000 | [diff] [blame] | 36 | define <2 x float> @t4(float %f) { |
| 37 | ; CHECK-ENABLED: vdup.32 d{{[0-9]*}}, d0[0] |
| 38 | ; CHECK-DISABLED-NOT: vdup |
| 39 | %i1 = insertelement <2 x float> undef, float %f, i32 1 |
| 40 | br label %b |
| 41 | |
| 42 | ; Block %b has an S-reg as live-in. |
| 43 | b: |
| 44 | %i2 = fadd <2 x float> %i1, %i1 |
| 45 | ret <2 x float> %i2 |
| 46 | } |
| 47 | |
| Stephen Lin | d24ab20 | 2013-07-14 06:24:09 +0000 | [diff] [blame] | 48 | ; CHECK-ENABLED-LABEL: t5: |
| 49 | ; CHECK-DISABLED-LABEL: t5: |
| Silviu Baranga | 82dd6ac | 2013-03-15 18:28:25 +0000 | [diff] [blame] | 50 | define arm_aapcs_vfpcc <4 x float> @t5(<4 x float> %q, float %f) { |
| 51 | ; CHECK-ENABLED: vdup.32 d{{[0-9]*}}, d{{[0-9]*}}[0] |
| 52 | ; CHECK-ENABLED: vadd.f32 |
| 53 | ; CHECK-ENABLED-NEXT: bx lr |
| 54 | ; CHECK-DISABLED-NOT: vdup |
| 55 | %i1 = insertelement <4 x float> %q, float %f, i32 1 |
| 56 | %i2 = fadd <4 x float> %i1, %i1 |
| 57 | ret <4 x float> %i2 |
| 58 | } |