1; RUN: llc < %s -march=sparc | FileCheck %s 2 3; Verify that we correctly handle vector types that appear directly 4; during call lowering. These may cause issue as v2i32 is a legal type 5; for the implementation of LDD 6 7; CHECK-LABEL: fun16v: 8; CHECK: foo1_16v 9; CHECK: foo2_16v 10 11define <2 x i16> @fun16v() #0 { 12 %1 = tail call <2 x i16> @foo1_16v() 13 %2 = tail call <2 x i16> @foo2_16v() 14 %3 = and <2 x i16> %2, %1 15 ret <2 x i16> %3 16} 17 18declare <2 x i16> @foo1_16v() #0 19declare <2 x i16> @foo2_16v() #0 20 21; CHECK-LABEL: fun32v: 22; CHECK: foo1_32v 23; CHECK: foo2_32v 24 25define <2 x i32> @fun32v() #0 { 26 %1 = tail call <2 x i32> @foo1_32v() 27 %2 = tail call <2 x i32> @foo2_32v() 28 %3 = and <2 x i32> %2, %1 29 ret <2 x i32> %3 30} 31 32declare <2 x i32> @foo1_32v() #0 33declare <2 x i32> @foo2_32v() #0 34