forked from OSchip/llvm-project
parent
2468ca0395
commit
3e5e272fca
|
@ -262,13 +262,13 @@ entry:
|
|||
ret <8 x float> %shuffle
|
||||
}
|
||||
|
||||
;; Test zero mask generation.
|
||||
;; Test zero mask generation.
|
||||
;; PR22984: https://llvm.org/bugs/show_bug.cgi?id=22984
|
||||
;; Prefer xor+vblendpd over vperm2f128 because that has better performance.
|
||||
|
||||
define <4 x double> @vperm2z_0x08(<4 x double> %a) {
|
||||
; ALL-LABEL: vperm2z_0x08:
|
||||
; ALL: # BB#0:
|
||||
; ALL: ## BB#0:
|
||||
; ALL-NEXT: vperm2f128 {{.*#+}} ymm0 = zero,zero,ymm0[0,1]
|
||||
; ALL-NEXT: retq
|
||||
%s = shufflevector <4 x double> %a, <4 x double> <double 0.0, double 0.0, double undef, double undef>, <4 x i32> <i32 4, i32 5, i32 0, i32 1>
|
||||
|
@ -277,7 +277,7 @@ define <4 x double> @vperm2z_0x08(<4 x double> %a) {
|
|||
|
||||
define <4 x double> @vperm2z_0x18(<4 x double> %a) {
|
||||
; ALL-LABEL: vperm2z_0x18:
|
||||
; ALL: # BB#0:
|
||||
; ALL: ## BB#0:
|
||||
; ALL-NEXT: vxorpd %ymm1, %ymm1, %ymm1
|
||||
; ALL-NEXT: vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
|
||||
; ALL-NEXT: retq
|
||||
|
@ -287,7 +287,7 @@ define <4 x double> @vperm2z_0x18(<4 x double> %a) {
|
|||
|
||||
define <4 x double> @vperm2z_0x28(<4 x double> %a) {
|
||||
; ALL-LABEL: vperm2z_0x28:
|
||||
; ALL: # BB#0:
|
||||
; ALL: ## BB#0:
|
||||
; ALL-NEXT: vperm2f128 {{.*#+}} ymm0 = zero,zero,ymm0[0,1]
|
||||
; ALL-NEXT: retq
|
||||
%s = shufflevector <4 x double> <double 0.0, double 0.0, double undef, double undef>, <4 x double> %a, <4 x i32> <i32 0, i32 1, i32 4, i32 5>
|
||||
|
@ -296,7 +296,7 @@ define <4 x double> @vperm2z_0x28(<4 x double> %a) {
|
|||
|
||||
define <4 x double> @vperm2z_0x38(<4 x double> %a) {
|
||||
; ALL-LABEL: vperm2z_0x38:
|
||||
; ALL: # BB#0:
|
||||
; ALL: ## BB#0:
|
||||
; ALL-NEXT: vxorpd %ymm1, %ymm1, %ymm1
|
||||
; ALL-NEXT: vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
|
||||
; ALL-NEXT: retq
|
||||
|
@ -306,7 +306,7 @@ define <4 x double> @vperm2z_0x38(<4 x double> %a) {
|
|||
|
||||
define <4 x double> @vperm2z_0x80(<4 x double> %a) {
|
||||
; ALL-LABEL: vperm2z_0x80:
|
||||
; ALL: # BB#0:
|
||||
; ALL: ## BB#0:
|
||||
; ALL-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[0,1],zero,zero
|
||||
; ALL-NEXT: retq
|
||||
%s = shufflevector <4 x double> %a, <4 x double> <double 0.0, double 0.0, double undef, double undef>, <4 x i32> <i32 0, i32 1, i32 4, i32 5>
|
||||
|
@ -315,7 +315,7 @@ define <4 x double> @vperm2z_0x80(<4 x double> %a) {
|
|||
|
||||
define <4 x double> @vperm2z_0x81(<4 x double> %a) {
|
||||
; ALL-LABEL: vperm2z_0x81:
|
||||
; ALL: # BB#0:
|
||||
; ALL: ## BB#0:
|
||||
; ALL-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],zero,zero
|
||||
; ALL-NEXT: retq
|
||||
%s = shufflevector <4 x double> %a, <4 x double> <double 0.0, double 0.0, double undef, double undef>, <4 x i32> <i32 2, i32 3, i32 4, i32 5>
|
||||
|
@ -324,7 +324,7 @@ define <4 x double> @vperm2z_0x81(<4 x double> %a) {
|
|||
|
||||
define <4 x double> @vperm2z_0x82(<4 x double> %a) {
|
||||
; ALL-LABEL: vperm2z_0x82:
|
||||
; ALL: # BB#0:
|
||||
; ALL: ## BB#0:
|
||||
; ALL-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[0,1],zero,zero
|
||||
; ALL-NEXT: retq
|
||||
%s = shufflevector <4 x double> <double 0.0, double 0.0, double undef, double undef>, <4 x double> %a, <4 x i32> <i32 4, i32 5, i32 0, i32 1>
|
||||
|
@ -333,7 +333,7 @@ define <4 x double> @vperm2z_0x82(<4 x double> %a) {
|
|||
|
||||
define <4 x double> @vperm2z_0x83(<4 x double> %a) {
|
||||
; ALL-LABEL: vperm2z_0x83:
|
||||
; ALL: # BB#0:
|
||||
; ALL: ## BB#0:
|
||||
; ALL-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],zero,zero
|
||||
; ALL-NEXT: retq
|
||||
%s = shufflevector <4 x double> <double 0.0, double 0.0, double undef, double undef>, <4 x double> %a, <4 x i32> <i32 6, i32 7, i32 0, i32 1>
|
||||
|
@ -344,7 +344,7 @@ define <4 x double> @vperm2z_0x83(<4 x double> %a) {
|
|||
|
||||
define <4 x i64> @vperm2z_int_0x83(<4 x i64> %a, <4 x i64> %b) {
|
||||
; ALL-LABEL: vperm2z_int_0x83:
|
||||
; ALL: # BB#0:
|
||||
; ALL: ## BB#0:
|
||||
; AVX1: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],zero,zero
|
||||
; AVX2: vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],zero,zero
|
||||
%s = shufflevector <4 x i64> <i64 0, i64 0, i64 undef, i64 undef>, <4 x i64> %a, <4 x i32> <i32 6, i32 7, i32 0, i32 1>
|
||||
|
|
Loading…
Reference in New Issue