mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-18 19:06:44 +00:00
[flang] update PPC vector tests (NFC) (#126256)
Replace 'undef' with 'poison' based on commit f4e3b87
This commit is contained in:
parent
247430e9c4
commit
4c7cbb9478
@ -719,8 +719,8 @@ subroutine vec_xlds_testi64a(arg1, arg2, res)
|
||||
! LLVMIR: %[[arg1:.*]] = load i64, ptr %0, align 8
|
||||
! LLVMIR: %[[addr:.*]] = getelementptr i8, ptr %1, i64 %[[arg1]]
|
||||
! LLVMIR: %[[ld:.*]] = load i64, ptr %[[addr]], align 8
|
||||
! LLVMIR: %[[insrt:.*]] = insertelement <2 x i64> undef, i64 %[[ld]], i32 0
|
||||
! LLVMIR: %[[shflv:.*]] = shufflevector <2 x i64> %[[insrt]], <2 x i64> undef, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[insrt:.*]] = insertelement <2 x i64> poison, i64 %[[ld]], i32 0
|
||||
! LLVMIR: %[[shflv:.*]] = shufflevector <2 x i64> %[[insrt]], <2 x i64> poison, <2 x i32> zeroinitializer
|
||||
! LLVMIR: store <2 x i64> %[[shflv]], ptr %2, align 16
|
||||
end subroutine vec_xlds_testi64a
|
||||
|
||||
@ -734,8 +734,8 @@ subroutine vec_xlds_testf64a(arg1, arg2, res)
|
||||
! LLVMIR: %[[arg1:.*]] = load i64, ptr %0, align 8
|
||||
! LLVMIR: %[[addr:.*]] = getelementptr i8, ptr %1, i64 %[[arg1]]
|
||||
! LLVMIR: %[[ld:.*]] = load i64, ptr %[[addr]], align 8
|
||||
! LLVMIR: %[[insrt:.*]] = insertelement <2 x i64> undef, i64 %[[ld]], i32 0
|
||||
! LLVMIR: %[[shflv:.*]] = shufflevector <2 x i64> %[[insrt]], <2 x i64> undef, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[insrt:.*]] = insertelement <2 x i64> poison, i64 %[[ld]], i32 0
|
||||
! LLVMIR: %[[shflv:.*]] = shufflevector <2 x i64> %[[insrt]], <2 x i64> poison, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[bc:.*]] = bitcast <2 x i64> %[[shflv]] to <2 x double>
|
||||
! LLVMIR: store <2 x double> %[[bc]], ptr %2, align 16
|
||||
end subroutine vec_xlds_testf64a
|
||||
|
@ -683,8 +683,8 @@ subroutine vec_xlds_testi64a(arg1, arg2, res)
|
||||
! LLVMIR: %[[arg1:.*]] = load i64, ptr %0, align 8
|
||||
! LLVMIR: %[[addr:.*]] = getelementptr i8, ptr %1, i64 %[[arg1]]
|
||||
! LLVMIR: %[[ld:.*]] = load i64, ptr %[[addr]], align 8
|
||||
! LLVMIR: %[[insrt:.*]] = insertelement <2 x i64> undef, i64 %[[ld]], i32 0
|
||||
! LLVMIR: %[[shfl:.*]] = shufflevector <2 x i64> %[[insrt]], <2 x i64> undef, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[insrt:.*]] = insertelement <2 x i64> poison, i64 %[[ld]], i32 0
|
||||
! LLVMIR: %[[shfl:.*]] = shufflevector <2 x i64> %[[insrt]], <2 x i64> poison, <2 x i32> zeroinitializer
|
||||
! LLVMIR: store <2 x i64> %[[shfl]], ptr %2, align 16
|
||||
end subroutine vec_xlds_testi64a
|
||||
|
||||
@ -698,8 +698,8 @@ subroutine vec_xlds_testf64a(arg1, arg2, res)
|
||||
! LLVMIR: %[[arg1:.*]] = load i64, ptr %0, align 8
|
||||
! LLVMIR: %[[addr:.*]] = getelementptr i8, ptr %1, i64 %[[arg1]]
|
||||
! LLVMIR: %[[ld:.*]] = load i64, ptr %[[addr]], align 8
|
||||
! LLVMIR: %[[insrt:.*]] = insertelement <2 x i64> undef, i64 %[[ld]], i32 0
|
||||
! LLVMIR: %[[shfl:.*]] = shufflevector <2 x i64> %[[insrt]], <2 x i64> undef, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[insrt:.*]] = insertelement <2 x i64> poison, i64 %[[ld]], i32 0
|
||||
! LLVMIR: %[[shfl:.*]] = shufflevector <2 x i64> %[[insrt]], <2 x i64> poison, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[bc:.*]] = bitcast <2 x i64> %[[shfl]] to <2 x double>
|
||||
! LLVMIR: store <2 x double> %[[bc]], ptr %2, align 16
|
||||
end subroutine vec_xlds_testf64a
|
||||
|
@ -8,8 +8,8 @@ subroutine vec_splat_testf32i64(x)
|
||||
|
||||
! LLVMIR: %[[x:.*]] = load <4 x float>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR: %[[ele:.*]] = extractelement <4 x float> %[[x]], i64 3
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x float> undef, float %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x float> %[[ins]], <4 x float> undef, <4 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x float> poison, float %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x float> %[[ins]], <4 x float> poison, <4 x i32> zeroinitializer
|
||||
! LLVMIR: store <4 x float> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testf32i64
|
||||
|
||||
@ -20,7 +20,7 @@ subroutine vec_splat_testu8i16(x)
|
||||
|
||||
! LLVMIR: %[[x:.*]] = load <16 x i8>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR: %[[ele:.*]] = extractelement <16 x i8> %[[x]], i16 15
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> undef, i8 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> undef, <16 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> poison, i8 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> poison, <16 x i32> zeroinitializer
|
||||
! LLVMIR: store <16 x i8> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testu8i16
|
||||
|
@ -14,8 +14,8 @@ subroutine vec_splat_testi8i8(x)
|
||||
! LLVMIR: %[[x:.*]] = load <16 x i8>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <16 x i8> %[[x]], i8 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <16 x i8> %[[x]], i8 15
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> undef, i8 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> undef, <16 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> poison, i8 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> poison, <16 x i32> zeroinitializer
|
||||
! LLVMIR: store <16 x i8> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testi8i8
|
||||
|
||||
@ -27,8 +27,8 @@ subroutine vec_splat_testi8i16(x)
|
||||
! LLVMIR: %[[x:.*]] = load <16 x i8>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <16 x i8> %[[x]], i16 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <16 x i8> %[[x]], i16 15
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> undef, i8 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> undef, <16 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> poison, i8 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> poison, <16 x i32> zeroinitializer
|
||||
! LLVMIR: store <16 x i8> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testi8i16
|
||||
|
||||
@ -40,8 +40,8 @@ subroutine vec_splat_testi8i32(x)
|
||||
! LLVMIR: %[[x:.*]] = load <16 x i8>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <16 x i8> %[[x]], i32 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <16 x i8> %[[x]], i32 15
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> undef, i8 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> undef, <16 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> poison, i8 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> poison, <16 x i32> zeroinitializer
|
||||
! LLVMIR: store <16 x i8> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testi8i32
|
||||
|
||||
@ -53,8 +53,8 @@ subroutine vec_splat_testi8i64(x)
|
||||
! LLVMIR: %[[x:.*]] = load <16 x i8>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <16 x i8> %[[x]], i64 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <16 x i8> %[[x]], i64 15
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> undef, i8 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> undef, <16 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> poison, i8 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> poison, <16 x i32> zeroinitializer
|
||||
! LLVMIR: store <16 x i8> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testi8i64
|
||||
|
||||
@ -66,8 +66,8 @@ subroutine vec_splat_testi16i8(x)
|
||||
! LLVMIR: %[[x:.*]] = load <8 x i16>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <8 x i16> %[[x]], i8 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <8 x i16> %[[x]], i8 7
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <8 x i16> undef, i16 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <8 x i16> %[[ins]], <8 x i16> undef, <8 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <8 x i16> poison, i16 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <8 x i16> %[[ins]], <8 x i16> poison, <8 x i32> zeroinitializer
|
||||
! LLVMIR: store <8 x i16> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testi16i8
|
||||
|
||||
@ -79,8 +79,8 @@ subroutine vec_splat_testi16i16(x)
|
||||
! LLVMIR: %[[x:.*]] = load <8 x i16>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <8 x i16> %[[x]], i16 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <8 x i16> %[[x]], i16 7
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <8 x i16> undef, i16 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <8 x i16> %[[ins]], <8 x i16> undef, <8 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <8 x i16> poison, i16 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <8 x i16> %[[ins]], <8 x i16> poison, <8 x i32> zeroinitializer
|
||||
! LLVMIR: store <8 x i16> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testi16i16
|
||||
|
||||
@ -92,8 +92,8 @@ subroutine vec_splat_testi16i32(x)
|
||||
! LLVMIR: %[[x:.*]] = load <8 x i16>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <8 x i16> %[[x]], i32 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <8 x i16> %[[x]], i32 7
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <8 x i16> undef, i16 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <8 x i16> %[[ins]], <8 x i16> undef, <8 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <8 x i16> poison, i16 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <8 x i16> %[[ins]], <8 x i16> poison, <8 x i32> zeroinitializer
|
||||
! LLVMIR: store <8 x i16> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testi16i32
|
||||
|
||||
@ -105,8 +105,8 @@ subroutine vec_splat_testi16i64(x)
|
||||
! LLVMIR: %[[x:.*]] = load <8 x i16>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <8 x i16> %[[x]], i64 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <8 x i16> %[[x]], i64 7
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <8 x i16> undef, i16 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <8 x i16> %[[ins]], <8 x i16> undef, <8 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <8 x i16> poison, i16 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <8 x i16> %[[ins]], <8 x i16> poison, <8 x i32> zeroinitializer
|
||||
! LLVMIR: store <8 x i16> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testi16i64
|
||||
|
||||
@ -118,8 +118,8 @@ subroutine vec_splat_testi32i8(x)
|
||||
! LLVMIR: %[[x:.*]] = load <4 x i32>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <4 x i32> %[[x]], i8 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <4 x i32> %[[x]], i8 3
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x i32> undef, i32 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x i32> %[[ins]], <4 x i32> undef, <4 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x i32> poison, i32 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x i32> %[[ins]], <4 x i32> poison, <4 x i32> zeroinitializer
|
||||
! LLVMIR: store <4 x i32> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testi32i8
|
||||
|
||||
@ -131,8 +131,8 @@ subroutine vec_splat_testi32i16(x)
|
||||
! LLVMIR: %[[x:.*]] = load <4 x i32>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <4 x i32> %[[x]], i16 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <4 x i32> %[[x]], i16 3
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x i32> undef, i32 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x i32> %[[ins]], <4 x i32> undef, <4 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x i32> poison, i32 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x i32> %[[ins]], <4 x i32> poison, <4 x i32> zeroinitializer
|
||||
! LLVMIR: store <4 x i32> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testi32i16
|
||||
|
||||
@ -144,8 +144,8 @@ subroutine vec_splat_testi32i32(x)
|
||||
! LLVMIR: %[[x:.*]] = load <4 x i32>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <4 x i32> %[[x]], i32 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <4 x i32> %[[x]], i32 3
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x i32> undef, i32 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x i32> %[[ins]], <4 x i32> undef, <4 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x i32> poison, i32 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x i32> %[[ins]], <4 x i32> poison, <4 x i32> zeroinitializer
|
||||
! LLVMIR: store <4 x i32> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testi32i32
|
||||
|
||||
@ -157,8 +157,8 @@ subroutine vec_splat_testi32i64(x)
|
||||
! LLVMIR: %[[x:.*]] = load <4 x i32>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <4 x i32> %[[x]], i64 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <4 x i32> %[[x]], i64 3
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x i32> undef, i32 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x i32> %[[ins]], <4 x i32> undef, <4 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x i32> poison, i32 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x i32> %[[ins]], <4 x i32> poison, <4 x i32> zeroinitializer
|
||||
! LLVMIR: store <4 x i32> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testi32i64
|
||||
|
||||
@ -170,8 +170,8 @@ subroutine vec_splat_testi64i8(x)
|
||||
! LLVMIR: %[[x:.*]] = load <2 x i64>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <2 x i64> %[[x]], i8 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <2 x i64> %[[x]], i8 1
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x i64> undef, i64 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x i64> %[[ins]], <2 x i64> undef, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x i64> poison, i64 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x i64> %[[ins]], <2 x i64> poison, <2 x i32> zeroinitializer
|
||||
! LLVMIR: store <2 x i64> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testi64i8
|
||||
|
||||
@ -183,8 +183,8 @@ subroutine vec_splat_testi64i16(x)
|
||||
! LLVMIR: %[[x:.*]] = load <2 x i64>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <2 x i64> %[[x]], i16 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <2 x i64> %[[x]], i16 1
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x i64> undef, i64 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x i64> %[[ins]], <2 x i64> undef, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x i64> poison, i64 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x i64> %[[ins]], <2 x i64> poison, <2 x i32> zeroinitializer
|
||||
! LLVMIR: store <2 x i64> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testi64i16
|
||||
|
||||
@ -196,8 +196,8 @@ subroutine vec_splat_testi64i32(x)
|
||||
! LLVMIR: %[[x:.*]] = load <2 x i64>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <2 x i64> %[[x]], i32 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <2 x i64> %[[x]], i32 1
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x i64> undef, i64 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x i64> %[[ins]], <2 x i64> undef, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x i64> poison, i64 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x i64> %[[ins]], <2 x i64> poison, <2 x i32> zeroinitializer
|
||||
! LLVMIR: store <2 x i64> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testi64i32
|
||||
|
||||
@ -209,8 +209,8 @@ subroutine vec_splat_testi64i64(x)
|
||||
! LLVMIR: %[[x:.*]] = load <2 x i64>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <2 x i64> %[[x]], i64 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <2 x i64> %[[x]], i64 1
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x i64> undef, i64 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x i64> %[[ins]], <2 x i64> undef, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x i64> poison, i64 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x i64> %[[ins]], <2 x i64> poison, <2 x i32> zeroinitializer
|
||||
! LLVMIR: store <2 x i64> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testi64i64
|
||||
|
||||
@ -222,8 +222,8 @@ subroutine vec_splat_testf32i8(x)
|
||||
! LLVMIR: %[[x:.*]] = load <4 x float>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <4 x float> %[[x]], i8 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <4 x float> %[[x]], i8 3
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x float> undef, float %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x float> %[[ins]], <4 x float> undef, <4 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x float> poison, float %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x float> %[[ins]], <4 x float> poison, <4 x i32> zeroinitializer
|
||||
! LLVMIR: store <4 x float> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testf32i8
|
||||
|
||||
@ -235,8 +235,8 @@ subroutine vec_splat_testf32i16(x)
|
||||
! LLVMIR: %[[x:.*]] = load <4 x float>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <4 x float> %[[x]], i16 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <4 x float> %[[x]], i16 3
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x float> undef, float %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x float> %[[ins]], <4 x float> undef, <4 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x float> poison, float %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x float> %[[ins]], <4 x float> poison, <4 x i32> zeroinitializer
|
||||
! LLVMIR: store <4 x float> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testf32i16
|
||||
|
||||
@ -248,8 +248,8 @@ subroutine vec_splat_testf32i32(x)
|
||||
! LLVMIR: %[[x:.*]] = load <4 x float>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <4 x float> %[[x]], i32 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <4 x float> %[[x]], i32 3
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x float> undef, float %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x float> %[[ins]], <4 x float> undef, <4 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x float> poison, float %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x float> %[[ins]], <4 x float> poison, <4 x i32> zeroinitializer
|
||||
! LLVMIR: store <4 x float> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testf32i32
|
||||
|
||||
@ -261,8 +261,8 @@ subroutine vec_splat_testf32i64(x)
|
||||
! LLVMIR: %[[x:.*]] = load <4 x float>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <4 x float> %[[x]], i64 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <4 x float> %[[x]], i64 3
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x float> undef, float %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x float> %[[ins]], <4 x float> undef, <4 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x float> poison, float %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x float> %[[ins]], <4 x float> poison, <4 x i32> zeroinitializer
|
||||
! LLVMIR: store <4 x float> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testf32i64
|
||||
|
||||
@ -274,8 +274,8 @@ subroutine vec_splat_testf64i8(x)
|
||||
! LLVMIR: %[[x:.*]] = load <2 x double>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <2 x double> %[[x]], i8 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <2 x double> %[[x]], i8 1
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x double> undef, double %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x double> %[[ins]], <2 x double> undef, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x double> poison, double %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x double> %[[ins]], <2 x double> poison, <2 x i32> zeroinitializer
|
||||
! LLVMIR: store <2 x double> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testf64i8
|
||||
|
||||
@ -287,8 +287,8 @@ subroutine vec_splat_testf64i16(x)
|
||||
! LLVMIR: %[[x:.*]] = load <2 x double>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <2 x double> %[[x]], i16 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <2 x double> %[[x]], i16 1
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x double> undef, double %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x double> %[[ins]], <2 x double> undef, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x double> poison, double %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x double> %[[ins]], <2 x double> poison, <2 x i32> zeroinitializer
|
||||
! LLVMIR: store <2 x double> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testf64i16
|
||||
|
||||
@ -300,8 +300,8 @@ subroutine vec_splat_testf64i32(x)
|
||||
! LLVMIR: %[[x:.*]] = load <2 x double>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <2 x double> %[[x]], i32 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <2 x double> %[[x]], i32 1
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x double> undef, double %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x double> %[[ins]], <2 x double> undef, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x double> poison, double %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x double> %[[ins]], <2 x double> poison, <2 x i32> zeroinitializer
|
||||
! LLVMIR: store <2 x double> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testf64i32
|
||||
|
||||
@ -313,8 +313,8 @@ subroutine vec_splat_testf64i64(x)
|
||||
! LLVMIR: %[[x:.*]] = load <2 x double>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <2 x double> %[[x]], i64 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <2 x double> %[[x]], i64 1
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x double> undef, double %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x double> %[[ins]], <2 x double> undef, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x double> poison, double %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x double> %[[ins]], <2 x double> poison, <2 x i32> zeroinitializer
|
||||
! LLVMIR: store <2 x double> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testf64i64
|
||||
|
||||
@ -326,8 +326,8 @@ subroutine vec_splat_testu8i8(x)
|
||||
! LLVMIR: %[[x:.*]] = load <16 x i8>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <16 x i8> %[[x]], i8 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <16 x i8> %[[x]], i8 15
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> undef, i8 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> undef, <16 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> poison, i8 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> poison, <16 x i32> zeroinitializer
|
||||
! LLVMIR: store <16 x i8> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testu8i8
|
||||
|
||||
@ -339,8 +339,8 @@ subroutine vec_splat_testu8i16(x)
|
||||
! LLVMIR: %[[x:.*]] = load <16 x i8>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <16 x i8> %[[x]], i16 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <16 x i8> %[[x]], i16 15
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> undef, i8 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> undef, <16 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> poison, i8 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> poison, <16 x i32> zeroinitializer
|
||||
! LLVMIR: store <16 x i8> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testu8i16
|
||||
|
||||
@ -352,8 +352,8 @@ subroutine vec_splat_testu8i32(x)
|
||||
! LLVMIR: %[[x:.*]] = load <16 x i8>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <16 x i8> %[[x]], i32 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <16 x i8> %[[x]], i32 15
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> undef, i8 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> undef, <16 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> poison, i8 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> poison, <16 x i32> zeroinitializer
|
||||
! LLVMIR: store <16 x i8> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testu8i32
|
||||
|
||||
@ -365,8 +365,8 @@ subroutine vec_splat_testu8i64(x)
|
||||
! LLVMIR: %[[x:.*]] = load <16 x i8>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <16 x i8> %[[x]], i64 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <16 x i8> %[[x]], i64 15
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> undef, i8 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> undef, <16 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> poison, i8 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> poison, <16 x i32> zeroinitializer
|
||||
! LLVMIR: store <16 x i8> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testu8i64
|
||||
|
||||
@ -378,8 +378,8 @@ subroutine vec_splat_testu16i8(x)
|
||||
! LLVMIR: %[[x:.*]] = load <8 x i16>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <8 x i16> %[[x]], i8 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <8 x i16> %[[x]], i8 7
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <8 x i16> undef, i16 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <8 x i16> %[[ins]], <8 x i16> undef, <8 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <8 x i16> poison, i16 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <8 x i16> %[[ins]], <8 x i16> poison, <8 x i32> zeroinitializer
|
||||
! LLVMIR: store <8 x i16> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testu16i8
|
||||
|
||||
@ -391,8 +391,8 @@ subroutine vec_splat_testu16i16(x)
|
||||
! LLVMIR: %[[x:.*]] = load <8 x i16>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <8 x i16> %[[x]], i16 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <8 x i16> %[[x]], i16 7
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <8 x i16> undef, i16 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <8 x i16> %[[ins]], <8 x i16> undef, <8 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <8 x i16> poison, i16 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <8 x i16> %[[ins]], <8 x i16> poison, <8 x i32> zeroinitializer
|
||||
! LLVMIR: store <8 x i16> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testu16i16
|
||||
|
||||
@ -404,8 +404,8 @@ subroutine vec_splat_testu16i32(x)
|
||||
! LLVMIR: %[[x:.*]] = load <8 x i16>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <8 x i16> %[[x]], i32 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <8 x i16> %[[x]], i32 7
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <8 x i16> undef, i16 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <8 x i16> %[[ins]], <8 x i16> undef, <8 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <8 x i16> poison, i16 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <8 x i16> %[[ins]], <8 x i16> poison, <8 x i32> zeroinitializer
|
||||
! LLVMIR: store <8 x i16> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testu16i32
|
||||
|
||||
@ -417,8 +417,8 @@ subroutine vec_splat_testu16i64(x)
|
||||
! LLVMIR: %[[x:.*]] = load <8 x i16>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <8 x i16> %[[x]], i64 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <8 x i16> %[[x]], i64 7
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <8 x i16> undef, i16 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <8 x i16> %[[ins]], <8 x i16> undef, <8 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <8 x i16> poison, i16 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <8 x i16> %[[ins]], <8 x i16> poison, <8 x i32> zeroinitializer
|
||||
! LLVMIR: store <8 x i16> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testu16i64
|
||||
|
||||
@ -430,8 +430,8 @@ subroutine vec_splat_testu32i8(x)
|
||||
! LLVMIR: %[[x:.*]] = load <4 x i32>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <4 x i32> %[[x]], i8 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <4 x i32> %[[x]], i8 3
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x i32> undef, i32 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x i32> %[[ins]], <4 x i32> undef, <4 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x i32> poison, i32 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x i32> %[[ins]], <4 x i32> poison, <4 x i32> zeroinitializer
|
||||
! LLVMIR: store <4 x i32> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testu32i8
|
||||
|
||||
@ -443,8 +443,8 @@ subroutine vec_splat_testu32i16(x)
|
||||
! LLVMIR: %[[x:.*]] = load <4 x i32>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <4 x i32> %[[x]], i16 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <4 x i32> %[[x]], i16 3
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x i32> undef, i32 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x i32> %[[ins]], <4 x i32> undef, <4 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x i32> poison, i32 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x i32> %[[ins]], <4 x i32> poison, <4 x i32> zeroinitializer
|
||||
! LLVMIR: store <4 x i32> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testu32i16
|
||||
|
||||
@ -456,8 +456,8 @@ subroutine vec_splat_testu32i32(x)
|
||||
! LLVMIR: %[[x:.*]] = load <4 x i32>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <4 x i32> %[[x]], i32 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <4 x i32> %[[x]], i32 3
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x i32> undef, i32 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x i32> %[[ins]], <4 x i32> undef, <4 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x i32> poison, i32 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x i32> %[[ins]], <4 x i32> poison, <4 x i32> zeroinitializer
|
||||
! LLVMIR: store <4 x i32> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testu32i32
|
||||
|
||||
@ -469,8 +469,8 @@ subroutine vec_splat_testu32i64(x)
|
||||
! LLVMIR: %[[x:.*]] = load <4 x i32>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <4 x i32> %[[x]], i64 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <4 x i32> %[[x]], i64 3
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x i32> undef, i32 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x i32> %[[ins]], <4 x i32> undef, <4 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x i32> poison, i32 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x i32> %[[ins]], <4 x i32> poison, <4 x i32> zeroinitializer
|
||||
! LLVMIR: store <4 x i32> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testu32i64
|
||||
|
||||
@ -482,8 +482,8 @@ subroutine vec_splat_testu64i8(x)
|
||||
! LLVMIR: %[[x:.*]] = load <2 x i64>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <2 x i64> %[[x]], i8 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <2 x i64> %[[x]], i8 1
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x i64> undef, i64 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x i64> %[[ins]], <2 x i64> undef, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x i64> poison, i64 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x i64> %[[ins]], <2 x i64> poison, <2 x i32> zeroinitializer
|
||||
! LLVMIR: store <2 x i64> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testu64i8
|
||||
|
||||
@ -495,8 +495,8 @@ subroutine vec_splat_testu64i16(x)
|
||||
! LLVMIR: %[[x:.*]] = load <2 x i64>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <2 x i64> %[[x]], i16 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <2 x i64> %[[x]], i16 1
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x i64> undef, i64 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x i64> %[[ins]], <2 x i64> undef, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x i64> poison, i64 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x i64> %[[ins]], <2 x i64> poison, <2 x i32> zeroinitializer
|
||||
! LLVMIR: store <2 x i64> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testu64i16
|
||||
|
||||
@ -508,8 +508,8 @@ subroutine vec_splat_testu64i32(x)
|
||||
! LLVMIR: %[[x:.*]] = load <2 x i64>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <2 x i64> %[[x]], i32 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <2 x i64> %[[x]], i32 1
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x i64> undef, i64 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x i64> %[[ins]], <2 x i64> undef, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x i64> poison, i64 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x i64> %[[ins]], <2 x i64> poison, <2 x i32> zeroinitializer
|
||||
! LLVMIR: store <2 x i64> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testu64i32
|
||||
|
||||
@ -521,8 +521,8 @@ subroutine vec_splat_testu64i64(x)
|
||||
! LLVMIR: %[[x:.*]] = load <2 x i64>, ptr %{{[0-9]}}, align 16
|
||||
! LLVMIR-LE: %[[ele:.*]] = extractelement <2 x i64> %[[x]], i64 0
|
||||
! LLVMIR-BE: %[[ele:.*]] = extractelement <2 x i64> %[[x]], i64 1
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x i64> undef, i64 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x i64> %[[ins]], <2 x i64> undef, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x i64> poison, i64 %[[ele]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x i64> %[[ins]], <2 x i64> poison, <2 x i32> zeroinitializer
|
||||
! LLVMIR: store <2 x i64> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splat_testu64i64
|
||||
|
||||
@ -537,8 +537,8 @@ subroutine vec_splats_testi8(x)
|
||||
y = vec_splats(x)
|
||||
|
||||
! LLVMIR: %[[x:.*]] = load i8, ptr %{{[0-9]}}, align 1
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> undef, i8 %[[x]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> undef, <16 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <16 x i8> poison, i8 %[[x]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <16 x i8> %[[ins]], <16 x i8> poison, <16 x i32> zeroinitializer
|
||||
! LLVMIR: store <16 x i8> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splats_testi8
|
||||
|
||||
@ -549,8 +549,8 @@ subroutine vec_splats_testi16(x)
|
||||
y = vec_splats(x)
|
||||
|
||||
! LLVMIR: %[[x:.*]] = load i16, ptr %{{[0-9]}}, align 2
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <8 x i16> undef, i16 %[[x]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <8 x i16> %[[ins]], <8 x i16> undef, <8 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <8 x i16> poison, i16 %[[x]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <8 x i16> %[[ins]], <8 x i16> poison, <8 x i32> zeroinitializer
|
||||
! LLVMIR: store <8 x i16> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splats_testi16
|
||||
|
||||
@ -561,8 +561,8 @@ subroutine vec_splats_testi32(x)
|
||||
y = vec_splats(x)
|
||||
|
||||
! LLVMIR: %[[x:.*]] = load i32, ptr %{{[0-9]}}, align 4
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x i32> undef, i32 %[[x]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x i32> %[[ins]], <4 x i32> undef, <4 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x i32> poison, i32 %[[x]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x i32> %[[ins]], <4 x i32> poison, <4 x i32> zeroinitializer
|
||||
! LLVMIR: store <4 x i32> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splats_testi32
|
||||
|
||||
@ -573,8 +573,8 @@ subroutine vec_splats_testi64(x)
|
||||
y = vec_splats(x)
|
||||
|
||||
! LLVMIR: %[[x:.*]] = load i64, ptr %{{[0-9]}}, align 8
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x i64> undef, i64 %[[x]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x i64> %[[ins]], <2 x i64> undef, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x i64> poison, i64 %[[x]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x i64> %[[ins]], <2 x i64> poison, <2 x i32> zeroinitializer
|
||||
! LLVMIR: store <2 x i64> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splats_testi64
|
||||
|
||||
@ -585,8 +585,8 @@ subroutine vec_splats_testf32(x)
|
||||
y = vec_splats(x)
|
||||
|
||||
! LLVMIR: %[[x:.*]] = load float, ptr %{{[0-9]}}, align 4
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x float> undef, float %[[x]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x float> %[[ins]], <4 x float> undef, <4 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <4 x float> poison, float %[[x]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <4 x float> %[[ins]], <4 x float> poison, <4 x i32> zeroinitializer
|
||||
! LLVMIR: store <4 x float> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splats_testf32
|
||||
|
||||
@ -597,8 +597,8 @@ subroutine vec_splats_testf64(x)
|
||||
y = vec_splats(x)
|
||||
|
||||
! LLVMIR: %[[x:.*]] = load double, ptr %{{[0-9]}}, align 8
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x double> undef, double %[[x]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x double> %[[ins]], <2 x double> undef, <2 x i32> zeroinitializer
|
||||
! LLVMIR: %[[ins:.*]] = insertelement <2 x double> poison, double %[[x]], i32 0
|
||||
! LLVMIR: %[[y:.*]] = shufflevector <2 x double> %[[ins]], <2 x double> poison, <2 x i32> zeroinitializer
|
||||
! LLVMIR: store <2 x double> %[[y]], ptr %{{[0-9]}}, align 16
|
||||
end subroutine vec_splats_testf64
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user