| ; RUN: llvm-as < %s | llvm-dis | FileCheck %s | |
| target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" | |
| target triple = "aarch64" | |
| @important_val = extern_weak dso_local global i32, align 4 | |
| ; CHECK-LABEL: define <vscale x 4 x i32> @const_shufflevector( | |
| ; CHECK: <vscale x 4 x i32> zeroinitializer | |
| define <vscale x 4 x i32> @const_shufflevector() { | |
| ret <vscale x 4 x i32> shufflevector (<vscale x 4 x i32> zeroinitializer, | |
| <vscale x 4 x i32> undef, | |
| <vscale x 4 x i32> zeroinitializer) | |
| } | |
| ; CHECK-LABEL: define <vscale x 4 x i32> @const_shufflevector_ex() | |
| ; CHECK: <vscale x 4 x i32> zeroinitializer | |
| define <vscale x 4 x i32> @const_shufflevector_ex() { | |
| ret <vscale x 4 x i32> shufflevector (<vscale x 2 x i32> zeroinitializer, | |
| <vscale x 2 x i32> undef, | |
| <vscale x 4 x i32> zeroinitializer) | |
| } | |
| ; CHECK-LABEL: define <vscale x 4 x i32> @non_const_shufflevector( | |
| ; CHECK: %res = shufflevector <vscale x 4 x i32> | |
| define <vscale x 4 x i32> @non_const_shufflevector(<vscale x 4 x i32> %lhs, | |
| <vscale x 4 x i32> %rhs) { | |
| %res = shufflevector <vscale x 4 x i32> %lhs, | |
| <vscale x 4 x i32> %rhs, | |
| <vscale x 4 x i32> zeroinitializer | |
| ret <vscale x 4 x i32> %res | |
| } | |
| ; CHECK-LABEL: define <vscale x 4 x i32> @const_select() | |
| ; CHECK: select <vscale x 4 x i1> | |
| define <vscale x 4 x i32> @const_select() { | |
| %s = select <vscale x 4 x i1> insertelement | |
| (<vscale x 4 x i1> undef, i1 true, i32 0), | |
| <vscale x 4 x i32> zeroinitializer, | |
| <vscale x 4 x i32> insertelement (<vscale x 4 x i32> undef, i32 1, i32 0) | |
| ret <vscale x 4 x i32> %s | |
| } |