brintos

brintos / llvm-project-archived public Read only

0
0
Text · 16.5 KiB · 449f29a Raw
551 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 @or_i1(i1 %a, i1 %b) {10; SDAG-X86-LABEL: or_i1:11; SDAG-X86:       # %bb.0:12; SDAG-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax13; SDAG-X86-NEXT:    orb {{[0-9]+}}(%esp), %al14; SDAG-X86-NEXT:    retl15;16; FASTISEL-X86-LABEL: or_i1:17; FASTISEL-X86:       # %bb.0:18; FASTISEL-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax19; FASTISEL-X86-NEXT:    orb {{[0-9]+}}(%esp), %al20; FASTISEL-X86-NEXT:    retl21;22; GISEL-X86-LABEL: or_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:    orb %cl, %al27; GISEL-X86-NEXT:    # kill: def $al killed $al killed $eax28; GISEL-X86-NEXT:    retl29;30; SDAG-X64-LABEL: or_i1:31; SDAG-X64:       # %bb.0:32; SDAG-X64-NEXT:    movl %edi, %eax33; SDAG-X64-NEXT:    orl %esi, %eax34; SDAG-X64-NEXT:    # kill: def $al killed $al killed $eax35; SDAG-X64-NEXT:    retq36;37; FASTISEL-X64-LABEL: or_i1:38; FASTISEL-X64:       # %bb.0:39; FASTISEL-X64-NEXT:    movl %edi, %eax40; FASTISEL-X64-NEXT:    orb %sil, %al41; FASTISEL-X64-NEXT:    # kill: def $al killed $al killed $eax42; FASTISEL-X64-NEXT:    retq43;44; GISEL-X64-LABEL: or_i1:45; GISEL-X64:       # %bb.0:46; GISEL-X64-NEXT:    movl %esi, %eax47; GISEL-X64-NEXT:    orb %dil, %al48; GISEL-X64-NEXT:    # kill: def $al killed $al killed $eax49; GISEL-X64-NEXT:    retq50  %c = or i1 %a, %b51  ret i1 %c52}53 54define i8 @or_i8(i8 %a, i8 %b) {55; SDAG-X86-LABEL: or_i8:56; SDAG-X86:       # %bb.0:57; SDAG-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax58; SDAG-X86-NEXT:    orb {{[0-9]+}}(%esp), %al59; SDAG-X86-NEXT:    retl60;61; FASTISEL-X86-LABEL: or_i8:62; FASTISEL-X86:       # %bb.0:63; FASTISEL-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax64; FASTISEL-X86-NEXT:    orb {{[0-9]+}}(%esp), %al65; FASTISEL-X86-NEXT:    retl66;67; GISEL-X86-LABEL: or_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:    orb %cl, %al72; GISEL-X86-NEXT:    # kill: def $al killed $al killed $eax73; GISEL-X86-NEXT:    retl74;75; SDAG-X64-LABEL: or_i8:76; SDAG-X64:       # %bb.0:77; SDAG-X64-NEXT:    movl %edi, %eax78; SDAG-X64-NEXT:    orl %esi, %eax79; SDAG-X64-NEXT:    # kill: def $al killed $al killed $eax80; SDAG-X64-NEXT:    retq81;82; FASTISEL-X64-LABEL: or_i8:83; FASTISEL-X64:       # %bb.0:84; FASTISEL-X64-NEXT:    movl %edi, %eax85; FASTISEL-X64-NEXT:    orb %sil, %al86; FASTISEL-X64-NEXT:    # kill: def $al killed $al killed $eax87; FASTISEL-X64-NEXT:    retq88;89; GISEL-X64-LABEL: or_i8:90; GISEL-X64:       # %bb.0:91; GISEL-X64-NEXT:    movl %esi, %eax92; GISEL-X64-NEXT:    orb %dil, %al93; GISEL-X64-NEXT:    # kill: def $al killed $al killed $eax94; GISEL-X64-NEXT:    retq95  %c = or i8 %a, %b96  ret i8 %c97}98 99define i16 @or_i16(i16 %a, i16 %b) {100; SDAG-X86-LABEL: or_i16:101; SDAG-X86:       # %bb.0:102; SDAG-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax103; SDAG-X86-NEXT:    orw {{[0-9]+}}(%esp), %ax104; SDAG-X86-NEXT:    retl105;106; FASTISEL-X86-LABEL: or_i16:107; FASTISEL-X86:       # %bb.0:108; FASTISEL-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax109; FASTISEL-X86-NEXT:    orw {{[0-9]+}}(%esp), %ax110; FASTISEL-X86-NEXT:    retl111;112; GISEL-X86-LABEL: or_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:    orw %cx, %ax117; GISEL-X86-NEXT:    # kill: def $ax killed $ax killed $eax118; GISEL-X86-NEXT:    retl119;120; SDAG-X64-LABEL: or_i16:121; SDAG-X64:       # %bb.0:122; SDAG-X64-NEXT:    movl %edi, %eax123; SDAG-X64-NEXT:    orl %esi, %eax124; SDAG-X64-NEXT:    # kill: def $ax killed $ax killed $eax125; SDAG-X64-NEXT:    retq126;127; FASTISEL-X64-LABEL: or_i16:128; FASTISEL-X64:       # %bb.0:129; FASTISEL-X64-NEXT:    movl %edi, %eax130; FASTISEL-X64-NEXT:    orw %si, %ax131; FASTISEL-X64-NEXT:    # kill: def $ax killed $ax killed $eax132; FASTISEL-X64-NEXT:    retq133;134; GISEL-X64-LABEL: or_i16:135; GISEL-X64:       # %bb.0:136; GISEL-X64-NEXT:    movl %esi, %eax137; GISEL-X64-NEXT:    orw %di, %ax138; GISEL-X64-NEXT:    # kill: def $ax killed $ax killed $eax139; GISEL-X64-NEXT:    retq140  %c = or i16 %a, %b141  ret i16 %c142}143 144define i32 @or_i32(i32 %a, i32 %b) {145; X86-LABEL: or_i32:146; X86:       # %bb.0:147; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax148; X86-NEXT:    orl {{[0-9]+}}(%esp), %eax149; X86-NEXT:    retl150;151; SDAG-X64-LABEL: or_i32:152; SDAG-X64:       # %bb.0:153; SDAG-X64-NEXT:    movl %edi, %eax154; SDAG-X64-NEXT:    orl %esi, %eax155; SDAG-X64-NEXT:    retq156;157; FASTISEL-X64-LABEL: or_i32:158; FASTISEL-X64:       # %bb.0:159; FASTISEL-X64-NEXT:    movl %edi, %eax160; FASTISEL-X64-NEXT:    orl %esi, %eax161; FASTISEL-X64-NEXT:    retq162;163; GISEL-X64-LABEL: or_i32:164; GISEL-X64:       # %bb.0:165; GISEL-X64-NEXT:    movl %esi, %eax166; GISEL-X64-NEXT:    orl %edi, %eax167; GISEL-X64-NEXT:    retq168  %c = or i32 %a, %b169  ret i32 %c170}171 172define i64 @or_i64(i64 %a, i64 %b) nounwind {173; SDAG-X86-LABEL: or_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:    orl {{[0-9]+}}(%esp), %eax178; SDAG-X86-NEXT:    orl {{[0-9]+}}(%esp), %edx179; SDAG-X86-NEXT:    retl180;181; FASTISEL-X86-LABEL: or_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:    orl {{[0-9]+}}(%esp), %eax186; FASTISEL-X86-NEXT:    orl {{[0-9]+}}(%esp), %edx187; FASTISEL-X86-NEXT:    retl188;189; GISEL-X86-LABEL: or_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:    orl {{[0-9]+}}(%esp), %eax194; GISEL-X86-NEXT:    orl {{[0-9]+}}(%esp), %edx195; GISEL-X86-NEXT:    retl196;197; SDAG-X64-LABEL: or_i64:198; SDAG-X64:       # %bb.0:199; SDAG-X64-NEXT:    movq %rdi, %rax200; SDAG-X64-NEXT:    orq %rsi, %rax201; SDAG-X64-NEXT:    retq202;203; FASTISEL-X64-LABEL: or_i64:204; FASTISEL-X64:       # %bb.0:205; FASTISEL-X64-NEXT:    movq %rdi, %rax206; FASTISEL-X64-NEXT:    orq %rsi, %rax207; FASTISEL-X64-NEXT:    retq208;209; GISEL-X64-LABEL: or_i64:210; GISEL-X64:       # %bb.0:211; GISEL-X64-NEXT:    movq %rsi, %rax212; GISEL-X64-NEXT:    orq %rdi, %rax213; GISEL-X64-NEXT:    retq214  %c = or i64 %a, %b215  ret i64 %c216}217 218define i8 @or_imm8_i8(i8 %a) {219; SDAG-X86-LABEL: or_imm8_i8:220; SDAG-X86:       # %bb.0:221; SDAG-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax222; SDAG-X86-NEXT:    orb $1, %al223; SDAG-X86-NEXT:    retl224;225; FASTISEL-X86-LABEL: or_imm8_i8:226; FASTISEL-X86:       # %bb.0:227; FASTISEL-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax228; FASTISEL-X86-NEXT:    orb $1, %al229; FASTISEL-X86-NEXT:    retl230;231; GISEL-X86-LABEL: or_imm8_i8:232; GISEL-X86:       # %bb.0:233; GISEL-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax234; GISEL-X86-NEXT:    orb $1, %al235; GISEL-X86-NEXT:    # kill: def $al killed $al killed $eax236; GISEL-X86-NEXT:    retl237;238; X64-LABEL: or_imm8_i8:239; X64:       # %bb.0:240; X64-NEXT:    movl %edi, %eax241; X64-NEXT:    orb $1, %al242; X64-NEXT:    # kill: def $al killed $al killed $eax243; X64-NEXT:    retq244  %c = or i8 %a, 1245  ret i8 %c246}247 248define i16 @or_imm8_i16(i16 %a) {249; SDAG-X86-LABEL: or_imm8_i16:250; SDAG-X86:       # %bb.0:251; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax252; SDAG-X86-NEXT:    orl $6, %eax253; SDAG-X86-NEXT:    # kill: def $ax killed $ax killed $eax254; SDAG-X86-NEXT:    retl255;256; FASTISEL-X86-LABEL: or_imm8_i16:257; FASTISEL-X86:       # %bb.0:258; FASTISEL-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax259; FASTISEL-X86-NEXT:    orw $6, %ax260; FASTISEL-X86-NEXT:    retl261;262; GISEL-X86-LABEL: or_imm8_i16:263; GISEL-X86:       # %bb.0:264; GISEL-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax265; GISEL-X86-NEXT:    orw $6, %ax266; GISEL-X86-NEXT:    # kill: def $ax killed $ax killed $eax267; GISEL-X86-NEXT:    retl268;269; SDAG-X64-LABEL: or_imm8_i16:270; SDAG-X64:       # %bb.0:271; SDAG-X64-NEXT:    movl %edi, %eax272; SDAG-X64-NEXT:    orl $6, %eax273; SDAG-X64-NEXT:    # kill: def $ax killed $ax killed $eax274; SDAG-X64-NEXT:    retq275;276; FASTISEL-X64-LABEL: or_imm8_i16:277; FASTISEL-X64:       # %bb.0:278; FASTISEL-X64-NEXT:    movl %edi, %eax279; FASTISEL-X64-NEXT:    orw $6, %ax280; FASTISEL-X64-NEXT:    # kill: def $ax killed $ax killed $eax281; FASTISEL-X64-NEXT:    retq282;283; GISEL-X64-LABEL: or_imm8_i16:284; GISEL-X64:       # %bb.0:285; GISEL-X64-NEXT:    movl %edi, %eax286; GISEL-X64-NEXT:    orw $6, %ax287; GISEL-X64-NEXT:    # kill: def $ax killed $ax killed $eax288; GISEL-X64-NEXT:    retq289  %c = or i16 %a, 6290  ret i16 %c291}292 293define i32 @or_imm8_i32(i32 %a) {294; SDAG-X86-LABEL: or_imm8_i32:295; SDAG-X86:       # %bb.0:296; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax297; SDAG-X86-NEXT:    orl $-5, %eax298; SDAG-X86-NEXT:    retl299;300; FASTISEL-X86-LABEL: or_imm8_i32:301; FASTISEL-X86:       # %bb.0:302; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax303; FASTISEL-X86-NEXT:    orl $-5, %eax304; FASTISEL-X86-NEXT:    retl305;306; GISEL-X86-LABEL: or_imm8_i32:307; GISEL-X86:       # %bb.0:308; GISEL-X86-NEXT:    movl $-5, %eax309; GISEL-X86-NEXT:    orl {{[0-9]+}}(%esp), %eax310; GISEL-X86-NEXT:    retl311;312; X64-LABEL: or_imm8_i32:313; X64:       # %bb.0:314; X64-NEXT:    movl %edi, %eax315; X64-NEXT:    orl $-5, %eax316; X64-NEXT:    retq317  %c = or i32 %a, -5318  ret i32 %c319}320 321define i64 @or_imm8_i64(i64 %a) {322; SDAG-X86-LABEL: or_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:    orl $1, %eax327; SDAG-X86-NEXT:    retl328;329; FASTISEL-X86-LABEL: or_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:    orl $1, %eax334; FASTISEL-X86-NEXT:    retl335;336; GISEL-X86-LABEL: or_imm8_i64:337; GISEL-X86:       # %bb.0:338; GISEL-X86-NEXT:    movl $1, %eax339; GISEL-X86-NEXT:    xorl %edx, %edx340; GISEL-X86-NEXT:    orl {{[0-9]+}}(%esp), %eax341; GISEL-X86-NEXT:    orl {{[0-9]+}}(%esp), %edx342; GISEL-X86-NEXT:    retl343;344; X64-LABEL: or_imm8_i64:345; X64:       # %bb.0:346; X64-NEXT:    movq %rdi, %rax347; X64-NEXT:    orq $1, %rax348; X64-NEXT:    retq349  %c = or i64 %a, 1350  ret i64 %c351}352 353define i16 @or_imm16_i16(i16 %a) {354; SDAG-X86-LABEL: or_imm16_i16:355; SDAG-X86:       # %bb.0:356; SDAG-X86-NEXT:    movl $1023, %eax # imm = 0x3FF357; SDAG-X86-NEXT:    orl {{[0-9]+}}(%esp), %eax358; SDAG-X86-NEXT:    # kill: def $ax killed $ax killed $eax359; SDAG-X86-NEXT:    retl360;361; FASTISEL-X86-LABEL: or_imm16_i16:362; FASTISEL-X86:       # %bb.0:363; FASTISEL-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax364; FASTISEL-X86-NEXT:    orw $1023, %ax # imm = 0x3FF365; FASTISEL-X86-NEXT:    retl366;367; GISEL-X86-LABEL: or_imm16_i16:368; GISEL-X86:       # %bb.0:369; GISEL-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax370; GISEL-X86-NEXT:    orw $1023, %ax # imm = 0x3FF371; GISEL-X86-NEXT:    # kill: def $ax killed $ax killed $eax372; GISEL-X86-NEXT:    retl373;374; SDAG-X64-LABEL: or_imm16_i16:375; SDAG-X64:       # %bb.0:376; SDAG-X64-NEXT:    movl %edi, %eax377; SDAG-X64-NEXT:    orl $1023, %eax # imm = 0x3FF378; SDAG-X64-NEXT:    # kill: def $ax killed $ax killed $eax379; SDAG-X64-NEXT:    retq380;381; FASTISEL-X64-LABEL: or_imm16_i16:382; FASTISEL-X64:       # %bb.0:383; FASTISEL-X64-NEXT:    movl %edi, %eax384; FASTISEL-X64-NEXT:    orw $1023, %ax # imm = 0x3FF385; FASTISEL-X64-NEXT:    # kill: def $ax killed $ax killed $eax386; FASTISEL-X64-NEXT:    retq387;388; GISEL-X64-LABEL: or_imm16_i16:389; GISEL-X64:       # %bb.0:390; GISEL-X64-NEXT:    movl %edi, %eax391; GISEL-X64-NEXT:    orw $1023, %ax # imm = 0x3FF392; GISEL-X64-NEXT:    # kill: def $ax killed $ax killed $eax393; GISEL-X64-NEXT:    retq394  %c = or i16 %a, 1023395  ret i16 %c396}397 398define i32 @or_imm16_i32(i32 %a) {399; SDAG-X86-LABEL: or_imm16_i32:400; SDAG-X86:       # %bb.0:401; SDAG-X86-NEXT:    movl $2044, %eax # imm = 0x7FC402; SDAG-X86-NEXT:    orl {{[0-9]+}}(%esp), %eax403; SDAG-X86-NEXT:    retl404;405; FASTISEL-X86-LABEL: or_imm16_i32:406; FASTISEL-X86:       # %bb.0:407; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax408; FASTISEL-X86-NEXT:    orl $2044, %eax # imm = 0x7FC409; FASTISEL-X86-NEXT:    retl410;411; GISEL-X86-LABEL: or_imm16_i32:412; GISEL-X86:       # %bb.0:413; GISEL-X86-NEXT:    movl $2044, %eax # imm = 0x7FC414; GISEL-X86-NEXT:    orl {{[0-9]+}}(%esp), %eax415; GISEL-X86-NEXT:    retl416;417; X64-LABEL: or_imm16_i32:418; X64:       # %bb.0:419; X64-NEXT:    movl %edi, %eax420; X64-NEXT:    orl $2044, %eax # imm = 0x7FC421; X64-NEXT:    retq422  %c = or i32 %a, 2044423  ret i32 %c424}425 426define i64 @or_imm16_i64(i64 %a) {427; SDAG-X86-LABEL: or_imm16_i64:428; SDAG-X86:       # %bb.0:429; SDAG-X86-NEXT:    movl $-5022, %eax # imm = 0xEC62430; SDAG-X86-NEXT:    orl {{[0-9]+}}(%esp), %eax431; SDAG-X86-NEXT:    movl $-1, %edx432; SDAG-X86-NEXT:    retl433;434; FASTISEL-X86-LABEL: or_imm16_i64:435; FASTISEL-X86:       # %bb.0:436; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax437; FASTISEL-X86-NEXT:    orl $-5022, %eax # imm = 0xEC62438; FASTISEL-X86-NEXT:    movl $-1, %edx439; FASTISEL-X86-NEXT:    retl440;441; GISEL-X86-LABEL: or_imm16_i64:442; GISEL-X86:       # %bb.0:443; GISEL-X86-NEXT:    movl $-5022, %eax # imm = 0xEC62444; GISEL-X86-NEXT:    movl $-1, %edx445; GISEL-X86-NEXT:    orl {{[0-9]+}}(%esp), %eax446; GISEL-X86-NEXT:    orl {{[0-9]+}}(%esp), %edx447; GISEL-X86-NEXT:    retl448;449; X64-LABEL: or_imm16_i64:450; X64:       # %bb.0:451; X64-NEXT:    movq %rdi, %rax452; X64-NEXT:    orq $-5022, %rax # imm = 0xEC62453; X64-NEXT:    retq454  %c = or i64 %a, -5022455  ret i64 %c456}457 458define i32 @or_imm32_i32(i32 %a) {459; SDAG-X86-LABEL: or_imm32_i32:460; SDAG-X86:       # %bb.0:461; SDAG-X86-NEXT:    movl $85538, %eax # imm = 0x14E22462; SDAG-X86-NEXT:    orl {{[0-9]+}}(%esp), %eax463; SDAG-X86-NEXT:    retl464;465; FASTISEL-X86-LABEL: or_imm32_i32:466; FASTISEL-X86:       # %bb.0:467; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax468; FASTISEL-X86-NEXT:    orl $85538, %eax # imm = 0x14E22469; FASTISEL-X86-NEXT:    retl470;471; GISEL-X86-LABEL: or_imm32_i32:472; GISEL-X86:       # %bb.0:473; GISEL-X86-NEXT:    movl $85538, %eax # imm = 0x14E22474; GISEL-X86-NEXT:    orl {{[0-9]+}}(%esp), %eax475; GISEL-X86-NEXT:    retl476;477; X64-LABEL: or_imm32_i32:478; X64:       # %bb.0:479; X64-NEXT:    movl %edi, %eax480; X64-NEXT:    orl $85538, %eax # imm = 0x14E22481; X64-NEXT:    retq482  %c = or i32 %a, 85538483  ret i32 %c484}485 486define i64 @or_imm32_i64(i64 %a) {487; SDAG-X86-LABEL: or_imm32_i64:488; SDAG-X86:       # %bb.0:489; SDAG-X86-NEXT:    movl $-125778, %eax # imm = 0xFFFE14AE490; SDAG-X86-NEXT:    orl {{[0-9]+}}(%esp), %eax491; SDAG-X86-NEXT:    movl $-1, %edx492; SDAG-X86-NEXT:    retl493;494; FASTISEL-X86-LABEL: or_imm32_i64:495; FASTISEL-X86:       # %bb.0:496; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax497; FASTISEL-X86-NEXT:    orl $-125778, %eax # imm = 0xFFFE14AE498; FASTISEL-X86-NEXT:    movl $-1, %edx499; FASTISEL-X86-NEXT:    retl500;501; GISEL-X86-LABEL: or_imm32_i64:502; GISEL-X86:       # %bb.0:503; GISEL-X86-NEXT:    movl $-125778, %eax # imm = 0xFFFE14AE504; GISEL-X86-NEXT:    movl $-1, %edx505; GISEL-X86-NEXT:    orl {{[0-9]+}}(%esp), %eax506; GISEL-X86-NEXT:    orl {{[0-9]+}}(%esp), %edx507; GISEL-X86-NEXT:    retl508;509; X64-LABEL: or_imm32_i64:510; X64:       # %bb.0:511; X64-NEXT:    movq %rdi, %rax512; X64-NEXT:    orq $-125778, %rax # imm = 0xFFFE14AE513; X64-NEXT:    retq514  %c = or i64 %a, -125778515  ret i64 %c516}517 518define i64 @or_imm64_i64(i64 %a) {519; SDAG-X86-LABEL: or_imm64_i64:520; SDAG-X86:       # %bb.0:521; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx522; SDAG-X86-NEXT:    movl $-1850691612, %eax # imm = 0x91B0AFE4523; SDAG-X86-NEXT:    orl {{[0-9]+}}(%esp), %eax524; SDAG-X86-NEXT:    orl $-2, %edx525; SDAG-X86-NEXT:    retl526;527; FASTISEL-X86-LABEL: or_imm64_i64:528; FASTISEL-X86:       # %bb.0:529; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx530; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax531; FASTISEL-X86-NEXT:    orl $-1850691612, %eax # imm = 0x91B0AFE4532; FASTISEL-X86-NEXT:    orl $-2, %edx533; FASTISEL-X86-NEXT:    retl534;535; GISEL-X86-LABEL: or_imm64_i64:536; GISEL-X86:       # %bb.0:537; GISEL-X86-NEXT:    movl $-1850691612, %eax # imm = 0x91B0AFE4538; GISEL-X86-NEXT:    movl $-2, %edx539; GISEL-X86-NEXT:    orl {{[0-9]+}}(%esp), %eax540; GISEL-X86-NEXT:    orl {{[0-9]+}}(%esp), %edx541; GISEL-X86-NEXT:    retl542;543; X64-LABEL: or_imm64_i64:544; X64:       # %bb.0:545; X64-NEXT:    movabsq $-6145658908, %rax # imm = 0xFFFFFFFE91B0AFE4546; X64-NEXT:    orq %rdi, %rax547; X64-NEXT:    retq548  %c = or i64 %a, -6145658908549  ret i64 %c550}551