; 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: <vscale x 4 x i32> select (<vscale x 4 x i1> define <vscale x 4 x i32> @const_select() { ret <vscale x 4 x i32> select (<vscale x 4 x i1> insertelement (<vscale x 4 x i1> undef, i1 icmp ne (i32* @important_val, i32* null), i32 0), <vscale x 4 x i32> zeroinitializer, <vscale x 4 x i32> insertelement (<vscale x 4 x i32> undef, i32 1, i32 0)) }