Lines Matching refs:EFLAGS

38 // sub / add which can clobber EFLAGS.
39 let Defs = [ESP, EFLAGS, SSP], Uses = [ESP, SSP], SchedRW = [WriteALU] in {
56 // sub / add which can clobber EFLAGS.
57 let Defs = [RSP, EFLAGS, SSP], Uses = [RSP, SSP], SchedRW = [WriteALU] in {
72 let hasSideEffects = 1, mayStore = 1, Defs = [EFLAGS] in {
78 (implicit EFLAGS)]>;
81 let usesCustomInserter = 1, Defs = [EFLAGS] in {
84 let Defs = [EFLAGS] in {
91 (implicit EFLAGS)]>, Requires<[In64BitMode, IsLP64]>;
98 (implicit EFLAGS)]>, Requires<[In64BitMode, NotLP64]>;
106 let Defs = [EAX, ESP, EFLAGS], Uses = [ESP] in
113 let Defs = [RAX, RSP, EFLAGS], Uses = [RSP] in
123 let Defs = [EAX, ESP, EFLAGS], Uses = [ESP] in
130 let Defs = [RAX, RSP, EFLAGS], Uses = [RSP] in
151 let Defs = [EAX, ESP, EFLAGS], Uses = [ESP] in
157 let Defs = [RAX, RSP, EFLAGS], Uses = [RSP] in
167 let Constraints = "$src = $dst", isMoveImm = 1, isPseudo = 1, Defs = [EFLAGS] in {
264 Defs = [R10, R11, EFLAGS] in {
273 Defs = [R10, R11, EFLAGS] in {
302 let Defs = [EFLAGS], isReMaterializable = 1, isAsCheapAsAMove = 1,
320 let Defs = [EFLAGS], isReMaterializable = 1, isPseudo = 1 in {
358 let Uses = [EFLAGS], Defs = [EFLAGS], isPseudo = 1, SchedRW = [WriteADC],
471 XMM8, XMM9, XMM10, XMM11, XMM12, XMM13, XMM14, XMM15, EFLAGS, DF],
491 XMM8, XMM9, XMM10, XMM11, XMM12, XMM13, XMM14, XMM15, EFLAGS, DF],
511 // TLSDESC only clobbers EAX and EFLAGS. ESP is marked as a use to prevent
514 let Defs = [EAX, EFLAGS], usesCustomInserter = 1, Uses = [RSP, SSP] in {
525 let Defs = [EAX, ECX, EFLAGS, DF],
538 let Defs = [RAX, EFLAGS, DF],
557 EFLAGS)))]>;
560 let usesCustomInserter = 1, hasNoSchedulingInfo = 1, Uses = [EFLAGS] in {
572 // fcmov doesn't handle all possible EFLAGS, provide a fallback if there is no
612 } // usesCustomInserter = 1, hasNoSchedulingInfo = 1, Uses = [EFLAGS]
614 def : Pat<(f128 (X86cmov VR128:$t, VR128:$f, timm:$cond, EFLAGS)),
618 def : Pat<(v16i8 (X86cmov VR128:$t, VR128:$f, timm:$cond, EFLAGS)),
620 def : Pat<(v8i16 (X86cmov VR128:$t, VR128:$f, timm:$cond, EFLAGS)),
622 def : Pat<(v4i32 (X86cmov VR128:$t, VR128:$f, timm:$cond, EFLAGS)),
624 def : Pat<(v4f32 (X86cmov VR128:$t, VR128:$f, timm:$cond, EFLAGS)),
626 def : Pat<(v2f64 (X86cmov VR128:$t, VR128:$f, timm:$cond, EFLAGS)),
629 def : Pat<(v32i8 (X86cmov VR256:$t, VR256:$f, timm:$cond, EFLAGS)),
631 def : Pat<(v16i16 (X86cmov VR256:$t, VR256:$f, timm:$cond, EFLAGS)),
633 def : Pat<(v8i32 (X86cmov VR256:$t, VR256:$f, timm:$cond, EFLAGS)),
635 def : Pat<(v8f32 (X86cmov VR256:$t, VR256:$f, timm:$cond, EFLAGS)),
637 def : Pat<(v4f64 (X86cmov VR256:$t, VR256:$f, timm:$cond, EFLAGS)),
641 def : Pat<(v16i8 (X86cmov VR128X:$t, VR128X:$f, timm:$cond, EFLAGS)),
643 def : Pat<(v8i16 (X86cmov VR128X:$t, VR128X:$f, timm:$cond, EFLAGS)),
645 def : Pat<(v8f16 (X86cmov VR128X:$t, VR128X:$f, timm:$cond, EFLAGS)),
647 def : Pat<(v4i32 (X86cmov VR128X:$t, VR128X:$f, timm:$cond, EFLAGS)),
649 def : Pat<(v4f32 (X86cmov VR128X:$t, VR128X:$f, timm:$cond, EFLAGS)),
651 def : Pat<(v2f64 (X86cmov VR128X:$t, VR128X:$f, timm:$cond, EFLAGS)),
654 def : Pat<(v32i8 (X86cmov VR256X:$t, VR256X:$f, timm:$cond, EFLAGS)),
656 def : Pat<(v16i16 (X86cmov VR256X:$t, VR256X:$f, timm:$cond, EFLAGS)),
658 def : Pat<(v16f16 (X86cmov VR256X:$t, VR256X:$f, timm:$cond, EFLAGS)),
660 def : Pat<(v8i32 (X86cmov VR256X:$t, VR256X:$f, timm:$cond, EFLAGS)),
662 def : Pat<(v8f32 (X86cmov VR256X:$t, VR256X:$f, timm:$cond, EFLAGS)),
664 def : Pat<(v4f64 (X86cmov VR256X:$t, VR256X:$f, timm:$cond, EFLAGS)),
668 def : Pat<(v64i8 (X86cmov VR512:$t, VR512:$f, timm:$cond, EFLAGS)),
670 def : Pat<(v32i16 (X86cmov VR512:$t, VR512:$f, timm:$cond, EFLAGS)),
672 def : Pat<(v32f16 (X86cmov VR512:$t, VR512:$f, timm:$cond, EFLAGS)),
674 def : Pat<(v16i32 (X86cmov VR512:$t, VR512:$f, timm:$cond, EFLAGS)),
676 def : Pat<(v16f32 (X86cmov VR512:$t, VR512:$f, timm:$cond, EFLAGS)),
678 def : Pat<(v8f64 (X86cmov VR512:$t, VR512:$f, timm:$cond, EFLAGS)),
689 let isCodeGenOnly = 1, Defs = [EFLAGS] in
701 let Defs = [EFLAGS], mayLoad = 1, mayStore = 1, isCodeGenOnly = 1,
709 [(set EFLAGS, (Op addr:$dst, GR8:$src2))]>, LOCK;
716 [(set EFLAGS, (Op addr:$dst, GR16:$src2))]>,
724 [(set EFLAGS, (Op addr:$dst, GR32:$src2))]>,
732 [(set EFLAGS, (Op addr:$dst, GR64:$src2))]>, LOCK;
741 [(set EFLAGS, (Op addr:$dst, i16immSExt8:$src2))]>,
749 [(set EFLAGS, (Op addr:$dst, i32immSExt8:$src2))]>,
757 [(set EFLAGS, (Op addr:$dst, i64immSExt8:$src2))]>,
765 [(set EFLAGS, (Op addr:$dst, (i8 imm:$src2)))]>, LOCK;
772 [(set EFLAGS, (Op addr:$dst, (i16 imm:$src2)))]>,
780 [(set EFLAGS, (Op addr:$dst, (i32 imm:$src2)))]>,
788 [(set EFLAGS, (Op addr:$dst, i64immSExt32:$src2))]>,
800 let Defs = [EFLAGS], mayLoad = 1, mayStore = 1, isCodeGenOnly = 1,
805 [(set EFLAGS, (X86lock_add_nocf addr:$dst, (i8 1)))]>,
809 [(set EFLAGS, (X86lock_add_nocf addr:$dst, (i16 1)))]>,
813 [(set EFLAGS, (X86lock_add_nocf addr:$dst, (i32 1)))]>,
818 [(set EFLAGS, (X86lock_sub_nocf addr:$dst, (i8 1)))]>,
822 [(set EFLAGS, (X86lock_sub_nocf addr:$dst, (i16 1)))]>,
826 [(set EFLAGS, (X86lock_sub_nocf addr:$dst, (i32 1)))]>,
833 [(set EFLAGS, (X86lock_add_nocf addr:$dst, (i64 1)))]>,
837 [(set EFLAGS, (X86lock_sub_nocf addr:$dst, (i64 1)))]>,
880 let Defs = [EFLAGS], mayLoad = 1, mayStore = 1, isCodeGenOnly = 1,
884 [(set EFLAGS, (!cast<SDNode>("x86" # s) addr:$src1, timm:$src2, (i32 16)))]>,
888 [(set EFLAGS, (!cast<SDNode>("x86" # s) addr:$src1, timm:$src2, (i32 32)))]>,
892 [(set EFLAGS, (!cast<SDNode>("x86" # s) addr:$src1, timm:$src2, (i32 64)))]>,
898 let Defs = [EFLAGS], mayLoad = 1, mayStore = 1, isCodeGenOnly = 1,
902 [(set EFLAGS, (!cast<SDNode>("x86_rm_" # s) addr:$src1, GR16:$src2))]>,
906 [(set EFLAGS, (!cast<SDNode>("x86_rm_" # s) addr:$src1, GR32:$src2))]>,
910 [(set EFLAGS, (!cast<SDNode>("x86_rm_" # s) addr:$src1, GR64:$src2))]>,
928 let Defs = [AL, EFLAGS], Uses = [AL] in
932 let Defs = [AX, EFLAGS], Uses = [AX] in
936 let Defs = [EAX, EFLAGS], Uses = [EAX] in
940 let Defs = [RAX, EFLAGS], Uses = [RAX] in
947 let Defs = [EAX, EDX, EFLAGS], Uses = [EAX, EBX, ECX, EDX],
955 let Defs = [RAX, RDX, EFLAGS], Uses = [RAX, RBX, RCX, RDX],
982 let Defs = [RAX, RDX, RBX, EFLAGS], Uses = [RAX, RCX, RDX],
994 let Defs = [RAX, RDX, EFLAGS], Uses = [RAX, RCX, RDX],
1033 let Constraints = "$val = $dst", Defs = [EFLAGS], mayLoad = 1, mayStore = 1,
1454 Constraints = "$src1 = $dst", Defs = [EFLAGS] in {
1891 // amount could affect EFLAGS results, but that does not matter because we are
1996 // EFLAGS-defining Patterns