Skip to content

Commit 39298ca

Browse files
committed
[x86] add tests for undef + partial undef constant folding; NFC
Keep this file sync'd with the instsimplify version (rL348045). llvm-svn: 348047
1 parent 502fc1b commit 39298ca

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed

llvm/test/CodeGen/X86/fp-undef.ll

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,3 +505,93 @@ define double @frem_undef_op1_fast_constant_inf(double %x) {
505505
ret double %r
506506
}
507507

508+
define <2 x double> @fadd_undef_op1_constant_vec(<2 x double> %x) {
509+
; ANY-LABEL: fadd_undef_op1_constant_vec:
510+
; ANY: # %bb.0:
511+
; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
512+
; ANY-NEXT: retq
513+
%r = fadd <2 x double> <double 42.0, double undef>, undef
514+
ret <2 x double> %r
515+
}
516+
517+
define <2 x double> @fadd_undef_op0_constant_vec(<2 x double> %x) {
518+
; ANY-LABEL: fadd_undef_op0_constant_vec:
519+
; ANY: # %bb.0:
520+
; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
521+
; ANY-NEXT: retq
522+
%r = fadd <2 x double> undef, <double undef, double 42.0>
523+
ret <2 x double> %r
524+
}
525+
526+
define <2 x double> @fsub_undef_op1_constant_vec(<2 x double> %x) {
527+
; ANY-LABEL: fsub_undef_op1_constant_vec:
528+
; ANY: # %bb.0:
529+
; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
530+
; ANY-NEXT: retq
531+
%r = fsub <2 x double> <double undef, double 42.0>, undef
532+
ret <2 x double> %r
533+
}
534+
535+
define <2 x double> @fsub_undef_op0_constant_vec(<2 x double> %x) {
536+
; ANY-LABEL: fsub_undef_op0_constant_vec:
537+
; ANY: # %bb.0:
538+
; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
539+
; ANY-NEXT: retq
540+
%r = fsub <2 x double> undef, <double 42.0, double undef>
541+
ret <2 x double> %r
542+
}
543+
544+
define <2 x double> @fmul_undef_op1_constant_vec(<2 x double> %x) {
545+
; ANY-LABEL: fmul_undef_op1_constant_vec:
546+
; ANY: # %bb.0:
547+
; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
548+
; ANY-NEXT: retq
549+
%r = fmul <2 x double> <double 42.0, double undef>, undef
550+
ret <2 x double> %r
551+
}
552+
553+
define <2 x double> @fmul_undef_op0_constant_vec(<2 x double> %x) {
554+
; ANY-LABEL: fmul_undef_op0_constant_vec:
555+
; ANY: # %bb.0:
556+
; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
557+
; ANY-NEXT: retq
558+
%r = fmul <2 x double> undef, <double undef, double 42.0>
559+
ret <2 x double> %r
560+
}
561+
562+
define <2 x double> @fdiv_undef_op1_constant_vec(<2 x double> %x) {
563+
; ANY-LABEL: fdiv_undef_op1_constant_vec:
564+
; ANY: # %bb.0:
565+
; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
566+
; ANY-NEXT: retq
567+
%r = fdiv <2 x double> <double 42.0, double undef>, undef
568+
ret <2 x double> %r
569+
}
570+
571+
define <2 x double> @fdiv_undef_op0_constant_vec(<2 x double> %x) {
572+
; ANY-LABEL: fdiv_undef_op0_constant_vec:
573+
; ANY: # %bb.0:
574+
; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
575+
; ANY-NEXT: retq
576+
%r = fdiv <2 x double> undef, <double undef, double 42.0>
577+
ret <2 x double> %r
578+
}
579+
580+
define <2 x double> @frem_undef_op1_constant_vec(<2 x double> %x) {
581+
; ANY-LABEL: frem_undef_op1_constant_vec:
582+
; ANY: # %bb.0:
583+
; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
584+
; ANY-NEXT: retq
585+
%r = frem <2 x double> <double undef, double 42.0>, undef
586+
ret <2 x double> %r
587+
}
588+
589+
define <2 x double> @frem_undef_op0_constant_vec(<2 x double> %x) {
590+
; ANY-LABEL: frem_undef_op0_constant_vec:
591+
; ANY: # %bb.0:
592+
; ANY-NEXT: movaps {{.*#+}} xmm0 = [NaN,NaN]
593+
; ANY-NEXT: retq
594+
%r = frem <2 x double> undef, <double 42.0, double undef>
595+
ret <2 x double> %r
596+
}
597+

0 commit comments

Comments
 (0)