mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-28 04:36:07 +00:00
[InstCombine] Regenerate test checks (NFC)
This commit is contained in:
parent
32a4e3fcca
commit
fda3a134bc
@ -57,8 +57,8 @@ define <8 x double> @identity_test_vpermilvar_pd_512(<8 x double> %v) {
|
||||
|
||||
define <4 x float> @zero_test_vpermilvar_ps_zero(<4 x float> %v) {
|
||||
; CHECK-LABEL: @zero_test_vpermilvar_ps_zero(
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x float> [[V:%.*]], <4 x float> poison, <4 x i32> zeroinitializer
|
||||
; CHECK-NEXT: ret <4 x float> [[TMP1]]
|
||||
; CHECK-NEXT: [[A:%.*]] = shufflevector <4 x float> [[V:%.*]], <4 x float> poison, <4 x i32> zeroinitializer
|
||||
; CHECK-NEXT: ret <4 x float> [[A]]
|
||||
;
|
||||
%a = tail call <4 x float> @llvm.x86.avx.vpermilvar.ps(<4 x float> %v, <4 x i32> zeroinitializer)
|
||||
ret <4 x float> %a
|
||||
@ -66,8 +66,8 @@ define <4 x float> @zero_test_vpermilvar_ps_zero(<4 x float> %v) {
|
||||
|
||||
define <8 x float> @zero_test_vpermilvar_ps_256_zero(<8 x float> %v) {
|
||||
; CHECK-LABEL: @zero_test_vpermilvar_ps_256_zero(
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x float> [[V:%.*]], <8 x float> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
|
||||
; CHECK-NEXT: ret <8 x float> [[TMP1]]
|
||||
; CHECK-NEXT: [[A:%.*]] = shufflevector <8 x float> [[V:%.*]], <8 x float> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
|
||||
; CHECK-NEXT: ret <8 x float> [[A]]
|
||||
;
|
||||
%a = tail call <8 x float> @llvm.x86.avx.vpermilvar.ps.256(<8 x float> %v, <8 x i32> zeroinitializer)
|
||||
ret <8 x float> %a
|
||||
@ -75,8 +75,8 @@ define <8 x float> @zero_test_vpermilvar_ps_256_zero(<8 x float> %v) {
|
||||
|
||||
define <16 x float> @zero_test_vpermilvar_ps_512_zero(<16 x float> %v) {
|
||||
; CHECK-LABEL: @zero_test_vpermilvar_ps_512_zero(
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <16 x float> [[V:%.*]], <16 x float> poison, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4, i32 8, i32 8, i32 8, i32 8, i32 12, i32 12, i32 12, i32 12>
|
||||
; CHECK-NEXT: ret <16 x float> [[TMP1]]
|
||||
; CHECK-NEXT: [[A:%.*]] = shufflevector <16 x float> [[V:%.*]], <16 x float> poison, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4, i32 8, i32 8, i32 8, i32 8, i32 12, i32 12, i32 12, i32 12>
|
||||
; CHECK-NEXT: ret <16 x float> [[A]]
|
||||
;
|
||||
%a = tail call <16 x float> @llvm.x86.avx512.vpermilvar.ps.512(<16 x float> %v, <16 x i32> zeroinitializer)
|
||||
ret <16 x float> %a
|
||||
@ -84,8 +84,8 @@ define <16 x float> @zero_test_vpermilvar_ps_512_zero(<16 x float> %v) {
|
||||
|
||||
define <2 x double> @zero_test_vpermilvar_pd_zero(<2 x double> %v) {
|
||||
; CHECK-LABEL: @zero_test_vpermilvar_pd_zero(
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <2 x double> [[V:%.*]], <2 x double> poison, <2 x i32> zeroinitializer
|
||||
; CHECK-NEXT: ret <2 x double> [[TMP1]]
|
||||
; CHECK-NEXT: [[A:%.*]] = shufflevector <2 x double> [[V:%.*]], <2 x double> poison, <2 x i32> zeroinitializer
|
||||
; CHECK-NEXT: ret <2 x double> [[A]]
|
||||
;
|
||||
%a = tail call <2 x double> @llvm.x86.avx.vpermilvar.pd(<2 x double> %v, <2 x i64> zeroinitializer)
|
||||
ret <2 x double> %a
|
||||
@ -93,8 +93,8 @@ define <2 x double> @zero_test_vpermilvar_pd_zero(<2 x double> %v) {
|
||||
|
||||
define <4 x double> @zero_test_vpermilvar_pd_256_zero(<4 x double> %v) {
|
||||
; CHECK-LABEL: @zero_test_vpermilvar_pd_256_zero(
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x double> [[V:%.*]], <4 x double> poison, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
|
||||
; CHECK-NEXT: ret <4 x double> [[TMP1]]
|
||||
; CHECK-NEXT: [[A:%.*]] = shufflevector <4 x double> [[V:%.*]], <4 x double> poison, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
|
||||
; CHECK-NEXT: ret <4 x double> [[A]]
|
||||
;
|
||||
%a = tail call <4 x double> @llvm.x86.avx.vpermilvar.pd.256(<4 x double> %v, <4 x i64> zeroinitializer)
|
||||
ret <4 x double> %a
|
||||
@ -102,8 +102,8 @@ define <4 x double> @zero_test_vpermilvar_pd_256_zero(<4 x double> %v) {
|
||||
|
||||
define <8 x double> @zero_test_vpermilvar_pd_512_zero(<8 x double> %v) {
|
||||
; CHECK-LABEL: @zero_test_vpermilvar_pd_512_zero(
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x double> [[V:%.*]], <8 x double> poison, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
|
||||
; CHECK-NEXT: ret <8 x double> [[TMP1]]
|
||||
; CHECK-NEXT: [[A:%.*]] = shufflevector <8 x double> [[V:%.*]], <8 x double> poison, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
|
||||
; CHECK-NEXT: ret <8 x double> [[A]]
|
||||
;
|
||||
%a = tail call <8 x double> @llvm.x86.avx512.vpermilvar.pd.512(<8 x double> %v, <8 x i64> zeroinitializer)
|
||||
ret <8 x double> %a
|
||||
@ -113,8 +113,8 @@ define <8 x double> @zero_test_vpermilvar_pd_512_zero(<8 x double> %v) {
|
||||
|
||||
define <4 x float> @test_vpermilvar_ps(<4 x float> %v) {
|
||||
; CHECK-LABEL: @test_vpermilvar_ps(
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x float> [[V:%.*]], <4 x float> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
|
||||
; CHECK-NEXT: ret <4 x float> [[TMP1]]
|
||||
; CHECK-NEXT: [[A:%.*]] = shufflevector <4 x float> [[V:%.*]], <4 x float> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
|
||||
; CHECK-NEXT: ret <4 x float> [[A]]
|
||||
;
|
||||
%a = tail call <4 x float> @llvm.x86.avx.vpermilvar.ps(<4 x float> %v, <4 x i32> <i32 3, i32 2, i32 1, i32 0>)
|
||||
ret <4 x float> %a
|
||||
@ -122,8 +122,8 @@ define <4 x float> @test_vpermilvar_ps(<4 x float> %v) {
|
||||
|
||||
define <8 x float> @test_vpermilvar_ps_256(<8 x float> %v) {
|
||||
; CHECK-LABEL: @test_vpermilvar_ps_256(
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x float> [[V:%.*]], <8 x float> poison, <8 x i32> <i32 3, i32 2, i32 1, i32 0, i32 7, i32 6, i32 5, i32 4>
|
||||
; CHECK-NEXT: ret <8 x float> [[TMP1]]
|
||||
; CHECK-NEXT: [[A:%.*]] = shufflevector <8 x float> [[V:%.*]], <8 x float> poison, <8 x i32> <i32 3, i32 2, i32 1, i32 0, i32 7, i32 6, i32 5, i32 4>
|
||||
; CHECK-NEXT: ret <8 x float> [[A]]
|
||||
;
|
||||
%a = tail call <8 x float> @llvm.x86.avx.vpermilvar.ps.256(<8 x float> %v, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>)
|
||||
ret <8 x float> %a
|
||||
@ -131,8 +131,8 @@ define <8 x float> @test_vpermilvar_ps_256(<8 x float> %v) {
|
||||
|
||||
define <16 x float> @test_vpermilvar_ps_512(<16 x float> %v) {
|
||||
; CHECK-LABEL: @test_vpermilvar_ps_512(
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <16 x float> [[V:%.*]], <16 x float> poison, <16 x i32> <i32 3, i32 2, i32 1, i32 0, i32 7, i32 6, i32 5, i32 4, i32 11, i32 10, i32 9, i32 8, i32 15, i32 14, i32 13, i32 12>
|
||||
; CHECK-NEXT: ret <16 x float> [[TMP1]]
|
||||
; CHECK-NEXT: [[A:%.*]] = shufflevector <16 x float> [[V:%.*]], <16 x float> poison, <16 x i32> <i32 3, i32 2, i32 1, i32 0, i32 7, i32 6, i32 5, i32 4, i32 11, i32 10, i32 9, i32 8, i32 15, i32 14, i32 13, i32 12>
|
||||
; CHECK-NEXT: ret <16 x float> [[A]]
|
||||
;
|
||||
%a = tail call <16 x float> @llvm.x86.avx512.vpermilvar.ps.512(<16 x float> %v, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>)
|
||||
ret <16 x float> %a
|
||||
@ -140,8 +140,8 @@ define <16 x float> @test_vpermilvar_ps_512(<16 x float> %v) {
|
||||
|
||||
define <2 x double> @test_vpermilvar_pd(<2 x double> %v) {
|
||||
; CHECK-LABEL: @test_vpermilvar_pd(
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <2 x double> [[V:%.*]], <2 x double> poison, <2 x i32> <i32 1, i32 0>
|
||||
; CHECK-NEXT: ret <2 x double> [[TMP1]]
|
||||
; CHECK-NEXT: [[A:%.*]] = shufflevector <2 x double> [[V:%.*]], <2 x double> poison, <2 x i32> <i32 1, i32 0>
|
||||
; CHECK-NEXT: ret <2 x double> [[A]]
|
||||
;
|
||||
%a = tail call <2 x double> @llvm.x86.avx.vpermilvar.pd(<2 x double> %v, <2 x i64> <i64 2, i64 0>)
|
||||
ret <2 x double> %a
|
||||
@ -149,8 +149,8 @@ define <2 x double> @test_vpermilvar_pd(<2 x double> %v) {
|
||||
|
||||
define <4 x double> @test_vpermilvar_pd_256(<4 x double> %v) {
|
||||
; CHECK-LABEL: @test_vpermilvar_pd_256(
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x double> [[V:%.*]], <4 x double> poison, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
|
||||
; CHECK-NEXT: ret <4 x double> [[TMP1]]
|
||||
; CHECK-NEXT: [[A:%.*]] = shufflevector <4 x double> [[V:%.*]], <4 x double> poison, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
|
||||
; CHECK-NEXT: ret <4 x double> [[A]]
|
||||
;
|
||||
%a = tail call <4 x double> @llvm.x86.avx.vpermilvar.pd.256(<4 x double> %v, <4 x i64> <i64 3, i64 1, i64 2, i64 0>)
|
||||
ret <4 x double> %a
|
||||
@ -158,8 +158,8 @@ define <4 x double> @test_vpermilvar_pd_256(<4 x double> %v) {
|
||||
|
||||
define <8 x double> @test_vpermilvar_pd_512(<8 x double> %v) {
|
||||
; CHECK-LABEL: @test_vpermilvar_pd_512(
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x double> [[V:%.*]], <8 x double> poison, <8 x i32> <i32 1, i32 0, i32 3, i32 2, i32 5, i32 4, i32 7, i32 6>
|
||||
; CHECK-NEXT: ret <8 x double> [[TMP1]]
|
||||
; CHECK-NEXT: [[A:%.*]] = shufflevector <8 x double> [[V:%.*]], <8 x double> poison, <8 x i32> <i32 1, i32 0, i32 3, i32 2, i32 5, i32 4, i32 7, i32 6>
|
||||
; CHECK-NEXT: ret <8 x double> [[A]]
|
||||
;
|
||||
%a = tail call <8 x double> @llvm.x86.avx512.vpermilvar.pd.512(<8 x double> %v, <8 x i64> <i64 3, i64 1, i64 2, i64 0, i64 7, i64 5, i64 6, i64 4>)
|
||||
ret <8 x double> %a
|
||||
@ -169,8 +169,8 @@ define <8 x double> @test_vpermilvar_pd_512(<8 x double> %v) {
|
||||
|
||||
define <4 x float> @undef_test_vpermilvar_ps(<4 x float> %v) {
|
||||
; CHECK-LABEL: @undef_test_vpermilvar_ps(
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x float> [[V:%.*]], <4 x float> poison, <4 x i32> <i32 poison, i32 2, i32 1, i32 poison>
|
||||
; CHECK-NEXT: ret <4 x float> [[TMP1]]
|
||||
; CHECK-NEXT: [[A:%.*]] = shufflevector <4 x float> [[V:%.*]], <4 x float> poison, <4 x i32> <i32 poison, i32 2, i32 1, i32 poison>
|
||||
; CHECK-NEXT: ret <4 x float> [[A]]
|
||||
;
|
||||
%a = tail call <4 x float> @llvm.x86.avx.vpermilvar.ps(<4 x float> %v, <4 x i32> <i32 undef, i32 2, i32 1, i32 undef>)
|
||||
ret <4 x float> %a
|
||||
@ -178,8 +178,8 @@ define <4 x float> @undef_test_vpermilvar_ps(<4 x float> %v) {
|
||||
|
||||
define <8 x float> @undef_test_vpermilvar_ps_256(<8 x float> %v) {
|
||||
; CHECK-LABEL: @undef_test_vpermilvar_ps_256(
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x float> [[V:%.*]], <8 x float> poison, <8 x i32> <i32 poison, i32 2, i32 1, i32 poison, i32 7, i32 6, i32 5, i32 4>
|
||||
; CHECK-NEXT: ret <8 x float> [[TMP1]]
|
||||
; CHECK-NEXT: [[A:%.*]] = shufflevector <8 x float> [[V:%.*]], <8 x float> poison, <8 x i32> <i32 poison, i32 2, i32 1, i32 poison, i32 7, i32 6, i32 5, i32 4>
|
||||
; CHECK-NEXT: ret <8 x float> [[A]]
|
||||
;
|
||||
%a = tail call <8 x float> @llvm.x86.avx.vpermilvar.ps.256(<8 x float> %v, <8 x i32> <i32 undef, i32 6, i32 5, i32 undef, i32 3, i32 2, i32 1, i32 0>)
|
||||
ret <8 x float> %a
|
||||
@ -187,8 +187,8 @@ define <8 x float> @undef_test_vpermilvar_ps_256(<8 x float> %v) {
|
||||
|
||||
define <16 x float> @undef_test_vpermilvar_ps_512(<16 x float> %v) {
|
||||
; CHECK-LABEL: @undef_test_vpermilvar_ps_512(
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <16 x float> [[V:%.*]], <16 x float> poison, <16 x i32> <i32 poison, i32 2, i32 1, i32 poison, i32 7, i32 6, i32 5, i32 4, i32 poison, i32 10, i32 9, i32 poison, i32 15, i32 14, i32 13, i32 12>
|
||||
; CHECK-NEXT: ret <16 x float> [[TMP1]]
|
||||
; CHECK-NEXT: [[A:%.*]] = shufflevector <16 x float> [[V:%.*]], <16 x float> poison, <16 x i32> <i32 poison, i32 2, i32 1, i32 poison, i32 7, i32 6, i32 5, i32 4, i32 poison, i32 10, i32 9, i32 poison, i32 15, i32 14, i32 13, i32 12>
|
||||
; CHECK-NEXT: ret <16 x float> [[A]]
|
||||
;
|
||||
%a = tail call <16 x float> @llvm.x86.avx512.vpermilvar.ps.512(<16 x float> %v, <16 x i32> <i32 undef, i32 6, i32 5, i32 undef, i32 3, i32 2, i32 1, i32 0, i32 undef, i32 6, i32 5, i32 undef, i32 3, i32 2, i32 1, i32 0>)
|
||||
ret <16 x float> %a
|
||||
@ -196,8 +196,8 @@ define <16 x float> @undef_test_vpermilvar_ps_512(<16 x float> %v) {
|
||||
|
||||
define <2 x double> @undef_test_vpermilvar_pd(<2 x double> %v) {
|
||||
; CHECK-LABEL: @undef_test_vpermilvar_pd(
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <2 x double> [[V:%.*]], <2 x double> poison, <2 x i32> <i32 poison, i32 0>
|
||||
; CHECK-NEXT: ret <2 x double> [[TMP1]]
|
||||
; CHECK-NEXT: [[A:%.*]] = shufflevector <2 x double> [[V:%.*]], <2 x double> poison, <2 x i32> <i32 poison, i32 0>
|
||||
; CHECK-NEXT: ret <2 x double> [[A]]
|
||||
;
|
||||
%a = tail call <2 x double> @llvm.x86.avx.vpermilvar.pd(<2 x double> %v, <2 x i64> <i64 undef, i64 0>)
|
||||
ret <2 x double> %a
|
||||
@ -205,8 +205,8 @@ define <2 x double> @undef_test_vpermilvar_pd(<2 x double> %v) {
|
||||
|
||||
define <4 x double> @undef_test_vpermilvar_pd_256(<4 x double> %v) {
|
||||
; CHECK-LABEL: @undef_test_vpermilvar_pd_256(
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x double> [[V:%.*]], <4 x double> poison, <4 x i32> <i32 poison, i32 0, i32 3, i32 poison>
|
||||
; CHECK-NEXT: ret <4 x double> [[TMP1]]
|
||||
; CHECK-NEXT: [[A:%.*]] = shufflevector <4 x double> [[V:%.*]], <4 x double> poison, <4 x i32> <i32 poison, i32 0, i32 3, i32 poison>
|
||||
; CHECK-NEXT: ret <4 x double> [[A]]
|
||||
;
|
||||
%a = tail call <4 x double> @llvm.x86.avx.vpermilvar.pd.256(<4 x double> %v, <4 x i64> <i64 undef, i64 1, i64 2, i64 undef>)
|
||||
ret <4 x double> %a
|
||||
@ -214,8 +214,8 @@ define <4 x double> @undef_test_vpermilvar_pd_256(<4 x double> %v) {
|
||||
|
||||
define <8 x double> @undef_test_vpermilvar_pd_512(<8 x double> %v) {
|
||||
; CHECK-LABEL: @undef_test_vpermilvar_pd_512(
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x double> [[V:%.*]], <8 x double> poison, <8 x i32> <i32 poison, i32 0, i32 3, i32 poison, i32 poison, i32 4, i32 7, i32 poison>
|
||||
; CHECK-NEXT: ret <8 x double> [[TMP1]]
|
||||
; CHECK-NEXT: [[A:%.*]] = shufflevector <8 x double> [[V:%.*]], <8 x double> poison, <8 x i32> <i32 poison, i32 0, i32 3, i32 poison, i32 poison, i32 4, i32 7, i32 poison>
|
||||
; CHECK-NEXT: ret <8 x double> [[A]]
|
||||
;
|
||||
%a = tail call <8 x double> @llvm.x86.avx512.vpermilvar.pd.512(<8 x double> %v, <8 x i64> <i64 undef, i64 1, i64 2, i64 undef, i64 undef, i64 1, i64 2, i64 undef>)
|
||||
ret <8 x double> %a
|
||||
|
@ -1,11 +0,0 @@
|
||||
; RUN: opt -passes=instcombine -S < %s | FileCheck %s
|
||||
|
||||
define void @test(ptr %in_ptr, ptr %out_ptr) {
|
||||
%A = load <4 x float>, ptr %in_ptr, align 16
|
||||
%B = shufflevector <4 x float> %A, <4 x float> poison, <4 x i32> <i32 0, i32 0, i32 undef, i32 undef>
|
||||
%C = shufflevector <4 x float> %B, <4 x float> %A, <4 x i32> <i32 0, i32 1, i32 4, i32 undef>
|
||||
%D = shufflevector <4 x float> %C, <4 x float> %A, <4 x i32> <i32 0, i32 1, i32 2, i32 4>
|
||||
; CHECK: %D = shufflevector <4 x float> %A, <4 x float> poison, <4 x i32> zeroinitializer
|
||||
store <4 x float> %D, ptr %out_ptr
|
||||
ret void
|
||||
}
|
@ -1,11 +1,34 @@
|
||||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4
|
||||
; RUN: opt -passes=instcombine -S < %s | FileCheck %s
|
||||
|
||||
define void @test(ptr %in_ptr, ptr %out_ptr) {
|
||||
define void @test_undef(ptr %in_ptr, ptr %out_ptr) {
|
||||
; CHECK-LABEL: define void @test_undef(
|
||||
; CHECK-SAME: ptr [[IN_PTR:%.*]], ptr [[OUT_PTR:%.*]]) {
|
||||
; CHECK-NEXT: [[A:%.*]] = load <4 x float>, ptr [[IN_PTR]], align 16
|
||||
; CHECK-NEXT: [[D:%.*]] = shufflevector <4 x float> [[A]], <4 x float> poison, <4 x i32> zeroinitializer
|
||||
; CHECK-NEXT: store <4 x float> [[D]], ptr [[OUT_PTR]], align 16
|
||||
; CHECK-NEXT: ret void
|
||||
;
|
||||
%A = load <4 x float>, ptr %in_ptr, align 16
|
||||
%B = shufflevector <4 x float> %A, <4 x float> undef, <4 x i32> <i32 0, i32 0, i32 undef, i32 undef>
|
||||
%C = shufflevector <4 x float> %B, <4 x float> %A, <4 x i32> <i32 0, i32 1, i32 4, i32 undef>
|
||||
%D = shufflevector <4 x float> %C, <4 x float> %A, <4 x i32> <i32 0, i32 1, i32 2, i32 4>
|
||||
; CHECK: %D = shufflevector <4 x float> %A, <4 x float> poison, <4 x i32> zeroinitializer
|
||||
store <4 x float> %D, ptr %out_ptr
|
||||
ret void
|
||||
}
|
||||
|
||||
define void @test_poison(ptr %in_ptr, ptr %out_ptr) {
|
||||
; CHECK-LABEL: define void @test_poison(
|
||||
; CHECK-SAME: ptr [[IN_PTR:%.*]], ptr [[OUT_PTR:%.*]]) {
|
||||
; CHECK-NEXT: [[A:%.*]] = load <4 x float>, ptr [[IN_PTR]], align 16
|
||||
; CHECK-NEXT: [[D:%.*]] = shufflevector <4 x float> [[A]], <4 x float> poison, <4 x i32> zeroinitializer
|
||||
; CHECK-NEXT: store <4 x float> [[D]], ptr [[OUT_PTR]], align 16
|
||||
; CHECK-NEXT: ret void
|
||||
;
|
||||
%A = load <4 x float>, ptr %in_ptr, align 16
|
||||
%B = shufflevector <4 x float> %A, <4 x float> poison, <4 x i32> <i32 0, i32 0, i32 undef, i32 undef>
|
||||
%C = shufflevector <4 x float> %B, <4 x float> %A, <4 x i32> <i32 0, i32 1, i32 4, i32 undef>
|
||||
%D = shufflevector <4 x float> %C, <4 x float> %A, <4 x i32> <i32 0, i32 1, i32 2, i32 4>
|
||||
store <4 x float> %D, ptr %out_ptr
|
||||
ret void
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user