brintos

brintos / llvm-project-archived public Read only

0
0
Text · 16.9 KiB · a31ad78 Raw
555 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=i686-- | FileCheck %s --check-prefixes=X86,SDAG-X863; RUN: llc < %s -mtriple=i686-- -fast-isel -fast-isel-abort=1 | FileCheck %s --check-prefixes=X86,FASTISEL-X864; RUN: llc < %s -mtriple=i686-- -global-isel -global-isel-abort=1 | FileCheck %s --check-prefixes=X86,GISEL-X865; RUN: llc < %s -mtriple=x86_64-- | FileCheck %s --check-prefixes=X64,SDAG-X646; RUN: llc < %s -mtriple=x86_64-- -fast-isel -fast-isel-abort=1 | FileCheck %s --check-prefixes=X64,FASTISEL-X647; RUN: llc < %s -mtriple=x86_64-- -global-isel -global-isel-abort=1 | FileCheck %s --check-prefixes=X64,GISEL-X648 9define i1 @xor_i1(i1 %a, i1 %b) {10; SDAG-X86-LABEL: xor_i1:11; SDAG-X86:       # %bb.0:12; SDAG-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax13; SDAG-X86-NEXT:    xorb {{[0-9]+}}(%esp), %al14; SDAG-X86-NEXT:    retl15;16; FASTISEL-X86-LABEL: xor_i1:17; FASTISEL-X86:       # %bb.0:18; FASTISEL-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax19; FASTISEL-X86-NEXT:    xorb {{[0-9]+}}(%esp), %al20; FASTISEL-X86-NEXT:    retl21;22; GISEL-X86-LABEL: xor_i1:23; GISEL-X86:       # %bb.0:24; GISEL-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %ecx25; GISEL-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax26; GISEL-X86-NEXT:    xorb %cl, %al27; GISEL-X86-NEXT:    # kill: def $al killed $al killed $eax28; GISEL-X86-NEXT:    retl29;30; SDAG-X64-LABEL: xor_i1:31; SDAG-X64:       # %bb.0:32; SDAG-X64-NEXT:    movl %edi, %eax33; SDAG-X64-NEXT:    xorl %esi, %eax34; SDAG-X64-NEXT:    # kill: def $al killed $al killed $eax35; SDAG-X64-NEXT:    retq36;37; FASTISEL-X64-LABEL: xor_i1:38; FASTISEL-X64:       # %bb.0:39; FASTISEL-X64-NEXT:    movl %edi, %eax40; FASTISEL-X64-NEXT:    xorb %sil, %al41; FASTISEL-X64-NEXT:    # kill: def $al killed $al killed $eax42; FASTISEL-X64-NEXT:    retq43;44; GISEL-X64-LABEL: xor_i1:45; GISEL-X64:       # %bb.0:46; GISEL-X64-NEXT:    movl %esi, %eax47; GISEL-X64-NEXT:    xorb %dil, %al48; GISEL-X64-NEXT:    # kill: def $al killed $al killed $eax49; GISEL-X64-NEXT:    retq50  %c = xor i1 %a, %b51  ret i1 %c52}53 54define i8 @xor_i8(i8 %a, i8 %b) {55; SDAG-X86-LABEL: xor_i8:56; SDAG-X86:       # %bb.0:57; SDAG-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax58; SDAG-X86-NEXT:    xorb {{[0-9]+}}(%esp), %al59; SDAG-X86-NEXT:    retl60;61; FASTISEL-X86-LABEL: xor_i8:62; FASTISEL-X86:       # %bb.0:63; FASTISEL-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax64; FASTISEL-X86-NEXT:    xorb {{[0-9]+}}(%esp), %al65; FASTISEL-X86-NEXT:    retl66;67; GISEL-X86-LABEL: xor_i8:68; GISEL-X86:       # %bb.0:69; GISEL-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %ecx70; GISEL-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax71; GISEL-X86-NEXT:    xorb %cl, %al72; GISEL-X86-NEXT:    # kill: def $al killed $al killed $eax73; GISEL-X86-NEXT:    retl74;75; SDAG-X64-LABEL: xor_i8:76; SDAG-X64:       # %bb.0:77; SDAG-X64-NEXT:    movl %edi, %eax78; SDAG-X64-NEXT:    xorl %esi, %eax79; SDAG-X64-NEXT:    # kill: def $al killed $al killed $eax80; SDAG-X64-NEXT:    retq81;82; FASTISEL-X64-LABEL: xor_i8:83; FASTISEL-X64:       # %bb.0:84; FASTISEL-X64-NEXT:    movl %edi, %eax85; FASTISEL-X64-NEXT:    xorb %sil, %al86; FASTISEL-X64-NEXT:    # kill: def $al killed $al killed $eax87; FASTISEL-X64-NEXT:    retq88;89; GISEL-X64-LABEL: xor_i8:90; GISEL-X64:       # %bb.0:91; GISEL-X64-NEXT:    movl %esi, %eax92; GISEL-X64-NEXT:    xorb %dil, %al93; GISEL-X64-NEXT:    # kill: def $al killed $al killed $eax94; GISEL-X64-NEXT:    retq95  %c = xor i8 %a, %b96  ret i8 %c97}98 99define i16 @xor_i16(i16 %a, i16 %b) {100; SDAG-X86-LABEL: xor_i16:101; SDAG-X86:       # %bb.0:102; SDAG-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax103; SDAG-X86-NEXT:    xorw {{[0-9]+}}(%esp), %ax104; SDAG-X86-NEXT:    retl105;106; FASTISEL-X86-LABEL: xor_i16:107; FASTISEL-X86:       # %bb.0:108; FASTISEL-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax109; FASTISEL-X86-NEXT:    xorw {{[0-9]+}}(%esp), %ax110; FASTISEL-X86-NEXT:    retl111;112; GISEL-X86-LABEL: xor_i16:113; GISEL-X86:       # %bb.0:114; GISEL-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %ecx115; GISEL-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax116; GISEL-X86-NEXT:    xorw %cx, %ax117; GISEL-X86-NEXT:    # kill: def $ax killed $ax killed $eax118; GISEL-X86-NEXT:    retl119;120; SDAG-X64-LABEL: xor_i16:121; SDAG-X64:       # %bb.0:122; SDAG-X64-NEXT:    movl %edi, %eax123; SDAG-X64-NEXT:    xorl %esi, %eax124; SDAG-X64-NEXT:    # kill: def $ax killed $ax killed $eax125; SDAG-X64-NEXT:    retq126;127; FASTISEL-X64-LABEL: xor_i16:128; FASTISEL-X64:       # %bb.0:129; FASTISEL-X64-NEXT:    movl %edi, %eax130; FASTISEL-X64-NEXT:    xorw %si, %ax131; FASTISEL-X64-NEXT:    # kill: def $ax killed $ax killed $eax132; FASTISEL-X64-NEXT:    retq133;134; GISEL-X64-LABEL: xor_i16:135; GISEL-X64:       # %bb.0:136; GISEL-X64-NEXT:    movl %esi, %eax137; GISEL-X64-NEXT:    xorw %di, %ax138; GISEL-X64-NEXT:    # kill: def $ax killed $ax killed $eax139; GISEL-X64-NEXT:    retq140  %c = xor i16 %a, %b141  ret i16 %c142}143 144define i32 @xor_i32(i32 %a, i32 %b) {145; X86-LABEL: xor_i32:146; X86:       # %bb.0:147; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax148; X86-NEXT:    xorl {{[0-9]+}}(%esp), %eax149; X86-NEXT:    retl150;151; SDAG-X64-LABEL: xor_i32:152; SDAG-X64:       # %bb.0:153; SDAG-X64-NEXT:    movl %edi, %eax154; SDAG-X64-NEXT:    xorl %esi, %eax155; SDAG-X64-NEXT:    retq156;157; FASTISEL-X64-LABEL: xor_i32:158; FASTISEL-X64:       # %bb.0:159; FASTISEL-X64-NEXT:    movl %edi, %eax160; FASTISEL-X64-NEXT:    xorl %esi, %eax161; FASTISEL-X64-NEXT:    retq162;163; GISEL-X64-LABEL: xor_i32:164; GISEL-X64:       # %bb.0:165; GISEL-X64-NEXT:    movl %esi, %eax166; GISEL-X64-NEXT:    xorl %edi, %eax167; GISEL-X64-NEXT:    retq168  %c = xor i32 %a, %b169  ret i32 %c170}171 172define i64 @xor_i64(i64 %a, i64 %b) nounwind {173; SDAG-X86-LABEL: xor_i64:174; SDAG-X86:       # %bb.0:175; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax176; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx177; SDAG-X86-NEXT:    xorl {{[0-9]+}}(%esp), %eax178; SDAG-X86-NEXT:    xorl {{[0-9]+}}(%esp), %edx179; SDAG-X86-NEXT:    retl180;181; FASTISEL-X86-LABEL: xor_i64:182; FASTISEL-X86:       # %bb.0:183; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx184; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax185; FASTISEL-X86-NEXT:    xorl {{[0-9]+}}(%esp), %eax186; FASTISEL-X86-NEXT:    xorl {{[0-9]+}}(%esp), %edx187; FASTISEL-X86-NEXT:    retl188;189; GISEL-X86-LABEL: xor_i64:190; GISEL-X86:       # %bb.0:191; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax192; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx193; GISEL-X86-NEXT:    xorl {{[0-9]+}}(%esp), %eax194; GISEL-X86-NEXT:    xorl {{[0-9]+}}(%esp), %edx195; GISEL-X86-NEXT:    retl196;197; SDAG-X64-LABEL: xor_i64:198; SDAG-X64:       # %bb.0:199; SDAG-X64-NEXT:    movq %rdi, %rax200; SDAG-X64-NEXT:    xorq %rsi, %rax201; SDAG-X64-NEXT:    retq202;203; FASTISEL-X64-LABEL: xor_i64:204; FASTISEL-X64:       # %bb.0:205; FASTISEL-X64-NEXT:    movq %rdi, %rax206; FASTISEL-X64-NEXT:    xorq %rsi, %rax207; FASTISEL-X64-NEXT:    retq208;209; GISEL-X64-LABEL: xor_i64:210; GISEL-X64:       # %bb.0:211; GISEL-X64-NEXT:    movq %rsi, %rax212; GISEL-X64-NEXT:    xorq %rdi, %rax213; GISEL-X64-NEXT:    retq214  %c = xor i64 %a, %b215  ret i64 %c216}217 218define i8 @xor_imm8_i8(i8 %a) {219; SDAG-X86-LABEL: xor_imm8_i8:220; SDAG-X86:       # %bb.0:221; SDAG-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax222; SDAG-X86-NEXT:    xorb $1, %al223; SDAG-X86-NEXT:    retl224;225; FASTISEL-X86-LABEL: xor_imm8_i8:226; FASTISEL-X86:       # %bb.0:227; FASTISEL-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax228; FASTISEL-X86-NEXT:    xorb $1, %al229; FASTISEL-X86-NEXT:    retl230;231; GISEL-X86-LABEL: xor_imm8_i8:232; GISEL-X86:       # %bb.0:233; GISEL-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax234; GISEL-X86-NEXT:    xorb $1, %al235; GISEL-X86-NEXT:    # kill: def $al killed $al killed $eax236; GISEL-X86-NEXT:    retl237;238; X64-LABEL: xor_imm8_i8:239; X64:       # %bb.0:240; X64-NEXT:    movl %edi, %eax241; X64-NEXT:    xorb $1, %al242; X64-NEXT:    # kill: def $al killed $al killed $eax243; X64-NEXT:    retq244  %c = xor i8 %a, 1245  ret i8 %c246}247 248define i16 @xor_imm8_i16(i16 %a) {249; SDAG-X86-LABEL: xor_imm8_i16:250; SDAG-X86:       # %bb.0:251; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax252; SDAG-X86-NEXT:    xorl $6, %eax253; SDAG-X86-NEXT:    # kill: def $ax killed $ax killed $eax254; SDAG-X86-NEXT:    retl255;256; FASTISEL-X86-LABEL: xor_imm8_i16:257; FASTISEL-X86:       # %bb.0:258; FASTISEL-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax259; FASTISEL-X86-NEXT:    xorw $6, %ax260; FASTISEL-X86-NEXT:    retl261;262; GISEL-X86-LABEL: xor_imm8_i16:263; GISEL-X86:       # %bb.0:264; GISEL-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax265; GISEL-X86-NEXT:    xorw $6, %ax266; GISEL-X86-NEXT:    # kill: def $ax killed $ax killed $eax267; GISEL-X86-NEXT:    retl268;269; SDAG-X64-LABEL: xor_imm8_i16:270; SDAG-X64:       # %bb.0:271; SDAG-X64-NEXT:    movl %edi, %eax272; SDAG-X64-NEXT:    xorl $6, %eax273; SDAG-X64-NEXT:    # kill: def $ax killed $ax killed $eax274; SDAG-X64-NEXT:    retq275;276; FASTISEL-X64-LABEL: xor_imm8_i16:277; FASTISEL-X64:       # %bb.0:278; FASTISEL-X64-NEXT:    movl %edi, %eax279; FASTISEL-X64-NEXT:    xorw $6, %ax280; FASTISEL-X64-NEXT:    # kill: def $ax killed $ax killed $eax281; FASTISEL-X64-NEXT:    retq282;283; GISEL-X64-LABEL: xor_imm8_i16:284; GISEL-X64:       # %bb.0:285; GISEL-X64-NEXT:    movl %edi, %eax286; GISEL-X64-NEXT:    xorw $6, %ax287; GISEL-X64-NEXT:    # kill: def $ax killed $ax killed $eax288; GISEL-X64-NEXT:    retq289  %c = xor i16 %a, 6290  ret i16 %c291}292 293define i32 @xor_imm8_i32(i32 %a) {294; SDAG-X86-LABEL: xor_imm8_i32:295; SDAG-X86:       # %bb.0:296; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax297; SDAG-X86-NEXT:    xorl $-5, %eax298; SDAG-X86-NEXT:    retl299;300; FASTISEL-X86-LABEL: xor_imm8_i32:301; FASTISEL-X86:       # %bb.0:302; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax303; FASTISEL-X86-NEXT:    xorl $-5, %eax304; FASTISEL-X86-NEXT:    retl305;306; GISEL-X86-LABEL: xor_imm8_i32:307; GISEL-X86:       # %bb.0:308; GISEL-X86-NEXT:    movl $-5, %eax309; GISEL-X86-NEXT:    xorl {{[0-9]+}}(%esp), %eax310; GISEL-X86-NEXT:    retl311;312; X64-LABEL: xor_imm8_i32:313; X64:       # %bb.0:314; X64-NEXT:    movl %edi, %eax315; X64-NEXT:    xorl $-5, %eax316; X64-NEXT:    retq317  %c = xor i32 %a, -5318  ret i32 %c319}320 321define i64 @xor_imm8_i64(i64 %a) {322; SDAG-X86-LABEL: xor_imm8_i64:323; SDAG-X86:       # %bb.0:324; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax325; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx326; SDAG-X86-NEXT:    xorl $1, %eax327; SDAG-X86-NEXT:    retl328;329; FASTISEL-X86-LABEL: xor_imm8_i64:330; FASTISEL-X86:       # %bb.0:331; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx332; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax333; FASTISEL-X86-NEXT:    xorl $1, %eax334; FASTISEL-X86-NEXT:    retl335;336; GISEL-X86-LABEL: xor_imm8_i64:337; GISEL-X86:       # %bb.0:338; GISEL-X86-NEXT:    movl $1, %eax339; GISEL-X86-NEXT:    xorl %edx, %edx340; GISEL-X86-NEXT:    xorl {{[0-9]+}}(%esp), %eax341; GISEL-X86-NEXT:    xorl {{[0-9]+}}(%esp), %edx342; GISEL-X86-NEXT:    retl343;344; X64-LABEL: xor_imm8_i64:345; X64:       # %bb.0:346; X64-NEXT:    movq %rdi, %rax347; X64-NEXT:    xorq $1, %rax348; X64-NEXT:    retq349  %c = xor i64 %a, 1350  ret i64 %c351}352 353define i16 @xor_imm16_i16(i16 %a) {354; SDAG-X86-LABEL: xor_imm16_i16:355; SDAG-X86:       # %bb.0:356; SDAG-X86-NEXT:    movl $1023, %eax # imm = 0x3FF357; SDAG-X86-NEXT:    xorl {{[0-9]+}}(%esp), %eax358; SDAG-X86-NEXT:    # kill: def $ax killed $ax killed $eax359; SDAG-X86-NEXT:    retl360;361; FASTISEL-X86-LABEL: xor_imm16_i16:362; FASTISEL-X86:       # %bb.0:363; FASTISEL-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax364; FASTISEL-X86-NEXT:    xorw $1023, %ax # imm = 0x3FF365; FASTISEL-X86-NEXT:    retl366;367; GISEL-X86-LABEL: xor_imm16_i16:368; GISEL-X86:       # %bb.0:369; GISEL-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax370; GISEL-X86-NEXT:    xorw $1023, %ax # imm = 0x3FF371; GISEL-X86-NEXT:    # kill: def $ax killed $ax killed $eax372; GISEL-X86-NEXT:    retl373;374; SDAG-X64-LABEL: xor_imm16_i16:375; SDAG-X64:       # %bb.0:376; SDAG-X64-NEXT:    movl %edi, %eax377; SDAG-X64-NEXT:    xorl $1023, %eax # imm = 0x3FF378; SDAG-X64-NEXT:    # kill: def $ax killed $ax killed $eax379; SDAG-X64-NEXT:    retq380;381; FASTISEL-X64-LABEL: xor_imm16_i16:382; FASTISEL-X64:       # %bb.0:383; FASTISEL-X64-NEXT:    movl %edi, %eax384; FASTISEL-X64-NEXT:    xorw $1023, %ax # imm = 0x3FF385; FASTISEL-X64-NEXT:    # kill: def $ax killed $ax killed $eax386; FASTISEL-X64-NEXT:    retq387;388; GISEL-X64-LABEL: xor_imm16_i16:389; GISEL-X64:       # %bb.0:390; GISEL-X64-NEXT:    movl %edi, %eax391; GISEL-X64-NEXT:    xorw $1023, %ax # imm = 0x3FF392; GISEL-X64-NEXT:    # kill: def $ax killed $ax killed $eax393; GISEL-X64-NEXT:    retq394  %c = xor i16 %a, 1023395  ret i16 %c396}397 398define i32 @xor_imm16_i32(i32 %a) {399; SDAG-X86-LABEL: xor_imm16_i32:400; SDAG-X86:       # %bb.0:401; SDAG-X86-NEXT:    movl $2044, %eax # imm = 0x7FC402; SDAG-X86-NEXT:    xorl {{[0-9]+}}(%esp), %eax403; SDAG-X86-NEXT:    retl404;405; FASTISEL-X86-LABEL: xor_imm16_i32:406; FASTISEL-X86:       # %bb.0:407; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax408; FASTISEL-X86-NEXT:    xorl $2044, %eax # imm = 0x7FC409; FASTISEL-X86-NEXT:    retl410;411; GISEL-X86-LABEL: xor_imm16_i32:412; GISEL-X86:       # %bb.0:413; GISEL-X86-NEXT:    movl $2044, %eax # imm = 0x7FC414; GISEL-X86-NEXT:    xorl {{[0-9]+}}(%esp), %eax415; GISEL-X86-NEXT:    retl416;417; X64-LABEL: xor_imm16_i32:418; X64:       # %bb.0:419; X64-NEXT:    movl %edi, %eax420; X64-NEXT:    xorl $2044, %eax # imm = 0x7FC421; X64-NEXT:    retq422  %c = xor i32 %a, 2044423  ret i32 %c424}425 426define i64 @xor_imm16_i64(i64 %a) {427; SDAG-X86-LABEL: xor_imm16_i64:428; SDAG-X86:       # %bb.0:429; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx430; SDAG-X86-NEXT:    movl $-5022, %eax # imm = 0xEC62431; SDAG-X86-NEXT:    xorl {{[0-9]+}}(%esp), %eax432; SDAG-X86-NEXT:    notl %edx433; SDAG-X86-NEXT:    retl434;435; FASTISEL-X86-LABEL: xor_imm16_i64:436; FASTISEL-X86:       # %bb.0:437; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx438; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax439; FASTISEL-X86-NEXT:    xorl $-5022, %eax # imm = 0xEC62440; FASTISEL-X86-NEXT:    notl %edx441; FASTISEL-X86-NEXT:    retl442;443; GISEL-X86-LABEL: xor_imm16_i64:444; GISEL-X86:       # %bb.0:445; GISEL-X86-NEXT:    movl $-5022, %eax # imm = 0xEC62446; GISEL-X86-NEXT:    movl $-1, %edx447; GISEL-X86-NEXT:    xorl {{[0-9]+}}(%esp), %eax448; GISEL-X86-NEXT:    xorl {{[0-9]+}}(%esp), %edx449; GISEL-X86-NEXT:    retl450;451; X64-LABEL: xor_imm16_i64:452; X64:       # %bb.0:453; X64-NEXT:    movq %rdi, %rax454; X64-NEXT:    xorq $-5022, %rax # imm = 0xEC62455; X64-NEXT:    retq456  %c = xor i64 %a, -5022457  ret i64 %c458}459 460define i32 @xor_imm32_i32(i32 %a) {461; SDAG-X86-LABEL: xor_imm32_i32:462; SDAG-X86:       # %bb.0:463; SDAG-X86-NEXT:    movl $85538, %eax # imm = 0x14E22464; SDAG-X86-NEXT:    xorl {{[0-9]+}}(%esp), %eax465; SDAG-X86-NEXT:    retl466;467; FASTISEL-X86-LABEL: xor_imm32_i32:468; FASTISEL-X86:       # %bb.0:469; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax470; FASTISEL-X86-NEXT:    xorl $85538, %eax # imm = 0x14E22471; FASTISEL-X86-NEXT:    retl472;473; GISEL-X86-LABEL: xor_imm32_i32:474; GISEL-X86:       # %bb.0:475; GISEL-X86-NEXT:    movl $85538, %eax # imm = 0x14E22476; GISEL-X86-NEXT:    xorl {{[0-9]+}}(%esp), %eax477; GISEL-X86-NEXT:    retl478;479; X64-LABEL: xor_imm32_i32:480; X64:       # %bb.0:481; X64-NEXT:    movl %edi, %eax482; X64-NEXT:    xorl $85538, %eax # imm = 0x14E22483; X64-NEXT:    retq484  %c = xor i32 %a, 85538485  ret i32 %c486}487 488define i64 @xor_imm32_i64(i64 %a) {489; SDAG-X86-LABEL: xor_imm32_i64:490; SDAG-X86:       # %bb.0:491; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx492; SDAG-X86-NEXT:    movl $-125778, %eax # imm = 0xFFFE14AE493; SDAG-X86-NEXT:    xorl {{[0-9]+}}(%esp), %eax494; SDAG-X86-NEXT:    notl %edx495; SDAG-X86-NEXT:    retl496;497; FASTISEL-X86-LABEL: xor_imm32_i64:498; FASTISEL-X86:       # %bb.0:499; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx500; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax501; FASTISEL-X86-NEXT:    xorl $-125778, %eax # imm = 0xFFFE14AE502; FASTISEL-X86-NEXT:    notl %edx503; FASTISEL-X86-NEXT:    retl504;505; GISEL-X86-LABEL: xor_imm32_i64:506; GISEL-X86:       # %bb.0:507; GISEL-X86-NEXT:    movl $-125778, %eax # imm = 0xFFFE14AE508; GISEL-X86-NEXT:    movl $-1, %edx509; GISEL-X86-NEXT:    xorl {{[0-9]+}}(%esp), %eax510; GISEL-X86-NEXT:    xorl {{[0-9]+}}(%esp), %edx511; GISEL-X86-NEXT:    retl512;513; X64-LABEL: xor_imm32_i64:514; X64:       # %bb.0:515; X64-NEXT:    movq %rdi, %rax516; X64-NEXT:    xorq $-125778, %rax # imm = 0xFFFE14AE517; X64-NEXT:    retq518  %c = xor i64 %a, -125778519  ret i64 %c520}521 522define i64 @xor_imm64_i64(i64 %a) {523; SDAG-X86-LABEL: xor_imm64_i64:524; SDAG-X86:       # %bb.0:525; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx526; SDAG-X86-NEXT:    movl $-1850691612, %eax # imm = 0x91B0AFE4527; SDAG-X86-NEXT:    xorl {{[0-9]+}}(%esp), %eax528; SDAG-X86-NEXT:    xorl $-2, %edx529; SDAG-X86-NEXT:    retl530;531; FASTISEL-X86-LABEL: xor_imm64_i64:532; FASTISEL-X86:       # %bb.0:533; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx534; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax535; FASTISEL-X86-NEXT:    xorl $-1850691612, %eax # imm = 0x91B0AFE4536; FASTISEL-X86-NEXT:    xorl $-2, %edx537; FASTISEL-X86-NEXT:    retl538;539; GISEL-X86-LABEL: xor_imm64_i64:540; GISEL-X86:       # %bb.0:541; GISEL-X86-NEXT:    movl $-1850691612, %eax # imm = 0x91B0AFE4542; GISEL-X86-NEXT:    movl $-2, %edx543; GISEL-X86-NEXT:    xorl {{[0-9]+}}(%esp), %eax544; GISEL-X86-NEXT:    xorl {{[0-9]+}}(%esp), %edx545; GISEL-X86-NEXT:    retl546;547; X64-LABEL: xor_imm64_i64:548; X64:       # %bb.0:549; X64-NEXT:    movabsq $-6145658908, %rax # imm = 0xFFFFFFFE91B0AFE4550; X64-NEXT:    xorq %rdi, %rax551; X64-NEXT:    retq552  %c = xor i64 %a, -6145658908553  ret i64 %c554}555