Dimitry Andric | 227b928 | 2016-01-03 17:22:03 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -march=arm64 -aarch64-neon-syntax=apple | FileCheck %s |
| 2 | |
| 3 | ;CHECK: @func30 |
| 4 | ;CHECK: movi.4h v1, #0x1 |
| 5 | ;CHECK: and.8b v0, v0, v1 |
| 6 | ;CHECK: ushll.4s v0, v0, #0 |
| 7 | ;CHECK: str q0, [x0] |
| 8 | ;CHECK: ret |
| 9 | |
| 10 | %T0_30 = type <4 x i1> |
| 11 | %T1_30 = type <4 x i32> |
| 12 | define void @func30(%T0_30 %v0, %T1_30* %p1) { |
| 13 | %r = zext %T0_30 %v0 to %T1_30 |
| 14 | store %T1_30 %r, %T1_30* %p1 |
| 15 | ret void |
| 16 | } |
| 17 | |
| 18 | ; Extend from v1i1 was crashing things (PR20791). Make sure we do something |
| 19 | ; sensible instead. |
| 20 | define <1 x i32> @autogen_SD7918() { |
| 21 | ; CHECK-LABEL: autogen_SD7918 |
| 22 | ; CHECK: movi d0, #0000000000000000 |
| 23 | ; CHECK-NEXT: ret |
| 24 | %I29 = insertelement <1 x i1> zeroinitializer, i1 false, i32 0 |
| 25 | %ZE = zext <1 x i1> %I29 to <1 x i32> |
| 26 | ret <1 x i32> %ZE |
| 27 | } |