brintos

brintos / llvm-project-archived public Read only

0
0
Text · 17.1 KiB · 3fda0e1 Raw
562 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 @and_i1(i1 %a, i1 %b) {10; SDAG-X86-LABEL: and_i1:11; SDAG-X86:       # %bb.0:12; SDAG-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax13; SDAG-X86-NEXT:    andb {{[0-9]+}}(%esp), %al14; SDAG-X86-NEXT:    retl15;16; FASTISEL-X86-LABEL: and_i1:17; FASTISEL-X86:       # %bb.0:18; FASTISEL-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax19; FASTISEL-X86-NEXT:    andb {{[0-9]+}}(%esp), %al20; FASTISEL-X86-NEXT:    retl21;22; GISEL-X86-LABEL: and_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:    andb %cl, %al27; GISEL-X86-NEXT:    # kill: def $al killed $al killed $eax28; GISEL-X86-NEXT:    retl29;30; SDAG-X64-LABEL: and_i1:31; SDAG-X64:       # %bb.0:32; SDAG-X64-NEXT:    movl %edi, %eax33; SDAG-X64-NEXT:    andl %esi, %eax34; SDAG-X64-NEXT:    # kill: def $al killed $al killed $eax35; SDAG-X64-NEXT:    retq36;37; FASTISEL-X64-LABEL: and_i1:38; FASTISEL-X64:       # %bb.0:39; FASTISEL-X64-NEXT:    movl %edi, %eax40; FASTISEL-X64-NEXT:    andb %sil, %al41; FASTISEL-X64-NEXT:    # kill: def $al killed $al killed $eax42; FASTISEL-X64-NEXT:    retq43;44; GISEL-X64-LABEL: and_i1:45; GISEL-X64:       # %bb.0:46; GISEL-X64-NEXT:    movl %esi, %eax47; GISEL-X64-NEXT:    andb %dil, %al48; GISEL-X64-NEXT:    # kill: def $al killed $al killed $eax49; GISEL-X64-NEXT:    retq50  %c = and i1 %a, %b51  ret i1 %c52}53define i8 @and_i8(i8 %a, i8 %b) {54; SDAG-X86-LABEL: and_i8:55; SDAG-X86:       # %bb.0:56; SDAG-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax57; SDAG-X86-NEXT:    andb {{[0-9]+}}(%esp), %al58; SDAG-X86-NEXT:    retl59;60; FASTISEL-X86-LABEL: and_i8:61; FASTISEL-X86:       # %bb.0:62; FASTISEL-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax63; FASTISEL-X86-NEXT:    andb {{[0-9]+}}(%esp), %al64; FASTISEL-X86-NEXT:    retl65;66; GISEL-X86-LABEL: and_i8:67; GISEL-X86:       # %bb.0:68; GISEL-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %ecx69; GISEL-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax70; GISEL-X86-NEXT:    andb %cl, %al71; GISEL-X86-NEXT:    # kill: def $al killed $al killed $eax72; GISEL-X86-NEXT:    retl73;74; SDAG-X64-LABEL: and_i8:75; SDAG-X64:       # %bb.0:76; SDAG-X64-NEXT:    movl %edi, %eax77; SDAG-X64-NEXT:    andl %esi, %eax78; SDAG-X64-NEXT:    # kill: def $al killed $al killed $eax79; SDAG-X64-NEXT:    retq80;81; FASTISEL-X64-LABEL: and_i8:82; FASTISEL-X64:       # %bb.0:83; FASTISEL-X64-NEXT:    movl %edi, %eax84; FASTISEL-X64-NEXT:    andb %sil, %al85; FASTISEL-X64-NEXT:    # kill: def $al killed $al killed $eax86; FASTISEL-X64-NEXT:    retq87;88; GISEL-X64-LABEL: and_i8:89; GISEL-X64:       # %bb.0:90; GISEL-X64-NEXT:    movl %esi, %eax91; GISEL-X64-NEXT:    andb %dil, %al92; GISEL-X64-NEXT:    # kill: def $al killed $al killed $eax93; GISEL-X64-NEXT:    retq94  %c = and i8 %a, %b95  ret i8 %c96}97 98define i16 @and_i16(i16 %a, i16 %b) {99; SDAG-X86-LABEL: and_i16:100; SDAG-X86:       # %bb.0:101; SDAG-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax102; SDAG-X86-NEXT:    andw {{[0-9]+}}(%esp), %ax103; SDAG-X86-NEXT:    retl104;105; FASTISEL-X86-LABEL: and_i16:106; FASTISEL-X86:       # %bb.0:107; FASTISEL-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax108; FASTISEL-X86-NEXT:    andw {{[0-9]+}}(%esp), %ax109; FASTISEL-X86-NEXT:    retl110;111; GISEL-X86-LABEL: and_i16:112; GISEL-X86:       # %bb.0:113; GISEL-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %ecx114; GISEL-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax115; GISEL-X86-NEXT:    andw %cx, %ax116; GISEL-X86-NEXT:    # kill: def $ax killed $ax killed $eax117; GISEL-X86-NEXT:    retl118;119; SDAG-X64-LABEL: and_i16:120; SDAG-X64:       # %bb.0:121; SDAG-X64-NEXT:    movl %edi, %eax122; SDAG-X64-NEXT:    andl %esi, %eax123; SDAG-X64-NEXT:    # kill: def $ax killed $ax killed $eax124; SDAG-X64-NEXT:    retq125;126; FASTISEL-X64-LABEL: and_i16:127; FASTISEL-X64:       # %bb.0:128; FASTISEL-X64-NEXT:    movl %edi, %eax129; FASTISEL-X64-NEXT:    andw %si, %ax130; FASTISEL-X64-NEXT:    # kill: def $ax killed $ax killed $eax131; FASTISEL-X64-NEXT:    retq132;133; GISEL-X64-LABEL: and_i16:134; GISEL-X64:       # %bb.0:135; GISEL-X64-NEXT:    movl %esi, %eax136; GISEL-X64-NEXT:    andw %di, %ax137; GISEL-X64-NEXT:    # kill: def $ax killed $ax killed $eax138; GISEL-X64-NEXT:    retq139  %c = and i16 %a, %b140  ret i16 %c141}142 143define i32 @and_i32(i32 %a, i32 %b) {144; X86-LABEL: and_i32:145; X86:       # %bb.0:146; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax147; X86-NEXT:    andl {{[0-9]+}}(%esp), %eax148; X86-NEXT:    retl149;150; SDAG-X64-LABEL: and_i32:151; SDAG-X64:       # %bb.0:152; SDAG-X64-NEXT:    movl %edi, %eax153; SDAG-X64-NEXT:    andl %esi, %eax154; SDAG-X64-NEXT:    retq155;156; FASTISEL-X64-LABEL: and_i32:157; FASTISEL-X64:       # %bb.0:158; FASTISEL-X64-NEXT:    movl %edi, %eax159; FASTISEL-X64-NEXT:    andl %esi, %eax160; FASTISEL-X64-NEXT:    retq161;162; GISEL-X64-LABEL: and_i32:163; GISEL-X64:       # %bb.0:164; GISEL-X64-NEXT:    movl %esi, %eax165; GISEL-X64-NEXT:    andl %edi, %eax166; GISEL-X64-NEXT:    retq167  %c = and i32 %a, %b168  ret i32 %c169}170 171define i64 @and_i64(i64 %a, i64 %b) nounwind {172; SDAG-X86-LABEL: and_i64:173; SDAG-X86:       # %bb.0:174; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax175; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx176; SDAG-X86-NEXT:    andl {{[0-9]+}}(%esp), %eax177; SDAG-X86-NEXT:    andl {{[0-9]+}}(%esp), %edx178; SDAG-X86-NEXT:    retl179;180; FASTISEL-X86-LABEL: and_i64:181; FASTISEL-X86:       # %bb.0:182; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx183; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax184; FASTISEL-X86-NEXT:    andl {{[0-9]+}}(%esp), %eax185; FASTISEL-X86-NEXT:    andl {{[0-9]+}}(%esp), %edx186; FASTISEL-X86-NEXT:    retl187;188; GISEL-X86-LABEL: and_i64:189; GISEL-X86:       # %bb.0:190; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax191; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx192; GISEL-X86-NEXT:    andl {{[0-9]+}}(%esp), %eax193; GISEL-X86-NEXT:    andl {{[0-9]+}}(%esp), %edx194; GISEL-X86-NEXT:    retl195;196; SDAG-X64-LABEL: and_i64:197; SDAG-X64:       # %bb.0:198; SDAG-X64-NEXT:    movq %rdi, %rax199; SDAG-X64-NEXT:    andq %rsi, %rax200; SDAG-X64-NEXT:    retq201;202; FASTISEL-X64-LABEL: and_i64:203; FASTISEL-X64:       # %bb.0:204; FASTISEL-X64-NEXT:    movq %rdi, %rax205; FASTISEL-X64-NEXT:    andq %rsi, %rax206; FASTISEL-X64-NEXT:    retq207;208; GISEL-X64-LABEL: and_i64:209; GISEL-X64:       # %bb.0:210; GISEL-X64-NEXT:    movq %rsi, %rax211; GISEL-X64-NEXT:    andq %rdi, %rax212; GISEL-X64-NEXT:    retq213  %c = and i64 %a, %b214  ret i64 %c215}216 217define i8 @and_imm8_i8(i8 %a) {218; SDAG-X86-LABEL: and_imm8_i8:219; SDAG-X86:       # %bb.0:220; SDAG-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax221; SDAG-X86-NEXT:    andb $1, %al222; SDAG-X86-NEXT:    retl223;224; FASTISEL-X86-LABEL: and_imm8_i8:225; FASTISEL-X86:       # %bb.0:226; FASTISEL-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax227; FASTISEL-X86-NEXT:    andb $1, %al228; FASTISEL-X86-NEXT:    retl229;230; GISEL-X86-LABEL: and_imm8_i8:231; GISEL-X86:       # %bb.0:232; GISEL-X86-NEXT:    movzbl {{[0-9]+}}(%esp), %eax233; GISEL-X86-NEXT:    andb $1, %al234; GISEL-X86-NEXT:    # kill: def $al killed $al killed $eax235; GISEL-X86-NEXT:    retl236;237; X64-LABEL: and_imm8_i8:238; X64:       # %bb.0:239; X64-NEXT:    movl %edi, %eax240; X64-NEXT:    andb $1, %al241; X64-NEXT:    # kill: def $al killed $al killed $eax242; X64-NEXT:    retq243  %c = and i8 %a, 1244  ret i8 %c245}246 247define i16 @and_imm8_i16(i16 %a) {248; SDAG-X86-LABEL: and_imm8_i16:249; SDAG-X86:       # %bb.0:250; SDAG-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax251; SDAG-X86-NEXT:    andl $6, %eax252; SDAG-X86-NEXT:    # kill: def $ax killed $ax killed $eax253; SDAG-X86-NEXT:    retl254;255; FASTISEL-X86-LABEL: and_imm8_i16:256; FASTISEL-X86:       # %bb.0:257; FASTISEL-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax258; FASTISEL-X86-NEXT:    andw $6, %ax259; FASTISEL-X86-NEXT:    retl260;261; GISEL-X86-LABEL: and_imm8_i16:262; GISEL-X86:       # %bb.0:263; GISEL-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax264; GISEL-X86-NEXT:    andw $6, %ax265; GISEL-X86-NEXT:    # kill: def $ax killed $ax killed $eax266; GISEL-X86-NEXT:    retl267;268; SDAG-X64-LABEL: and_imm8_i16:269; SDAG-X64:       # %bb.0:270; SDAG-X64-NEXT:    movl %edi, %eax271; SDAG-X64-NEXT:    andl $6, %eax272; SDAG-X64-NEXT:    # kill: def $ax killed $ax killed $eax273; SDAG-X64-NEXT:    retq274;275; FASTISEL-X64-LABEL: and_imm8_i16:276; FASTISEL-X64:       # %bb.0:277; FASTISEL-X64-NEXT:    movl %edi, %eax278; FASTISEL-X64-NEXT:    andw $6, %ax279; FASTISEL-X64-NEXT:    # kill: def $ax killed $ax killed $eax280; FASTISEL-X64-NEXT:    retq281;282; GISEL-X64-LABEL: and_imm8_i16:283; GISEL-X64:       # %bb.0:284; GISEL-X64-NEXT:    movl %edi, %eax285; GISEL-X64-NEXT:    andw $6, %ax286; GISEL-X64-NEXT:    # kill: def $ax killed $ax killed $eax287; GISEL-X64-NEXT:    retq288  %c = and i16 %a, 6289  ret i16 %c290}291 292define i32 @and_imm8_i32(i32 %a) {293; SDAG-X86-LABEL: and_imm8_i32:294; SDAG-X86:       # %bb.0:295; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax296; SDAG-X86-NEXT:    andl $-5, %eax297; SDAG-X86-NEXT:    retl298;299; FASTISEL-X86-LABEL: and_imm8_i32:300; FASTISEL-X86:       # %bb.0:301; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax302; FASTISEL-X86-NEXT:    andl $-5, %eax303; FASTISEL-X86-NEXT:    retl304;305; GISEL-X86-LABEL: and_imm8_i32:306; GISEL-X86:       # %bb.0:307; GISEL-X86-NEXT:    movl $-5, %eax308; GISEL-X86-NEXT:    andl {{[0-9]+}}(%esp), %eax309; GISEL-X86-NEXT:    retl310;311; X64-LABEL: and_imm8_i32:312; X64:       # %bb.0:313; X64-NEXT:    movl %edi, %eax314; X64-NEXT:    andl $-5, %eax315; X64-NEXT:    retq316  %c = and i32 %a, -5317  ret i32 %c318}319 320define i64 @and_imm8_i64(i64 %a) {321; SDAG-X86-LABEL: and_imm8_i64:322; SDAG-X86:       # %bb.0:323; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax324; SDAG-X86-NEXT:    andl $1, %eax325; SDAG-X86-NEXT:    xorl %edx, %edx326; SDAG-X86-NEXT:    retl327;328; FASTISEL-X86-LABEL: and_imm8_i64:329; FASTISEL-X86:       # %bb.0:330; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax331; FASTISEL-X86-NEXT:    andl $1, %eax332; FASTISEL-X86-NEXT:    xorl %edx, %edx333; FASTISEL-X86-NEXT:    retl334;335; GISEL-X86-LABEL: and_imm8_i64:336; GISEL-X86:       # %bb.0:337; GISEL-X86-NEXT:    movl $1, %eax338; GISEL-X86-NEXT:    xorl %edx, %edx339; GISEL-X86-NEXT:    andl {{[0-9]+}}(%esp), %eax340; GISEL-X86-NEXT:    andl {{[0-9]+}}(%esp), %edx341; GISEL-X86-NEXT:    retl342;343; SDAG-X64-LABEL: and_imm8_i64:344; SDAG-X64:       # %bb.0:345; SDAG-X64-NEXT:    movq %rdi, %rax346; SDAG-X64-NEXT:    andl $1, %eax347; SDAG-X64-NEXT:    retq348;349; FASTISEL-X64-LABEL: and_imm8_i64:350; FASTISEL-X64:       # %bb.0:351; FASTISEL-X64-NEXT:    movq %rdi, %rax352; FASTISEL-X64-NEXT:    andq $1, %rax353; FASTISEL-X64-NEXT:    retq354;355; GISEL-X64-LABEL: and_imm8_i64:356; GISEL-X64:       # %bb.0:357; GISEL-X64-NEXT:    movq %rdi, %rax358; GISEL-X64-NEXT:    andq $1, %rax359; GISEL-X64-NEXT:    retq360  %c = and i64 %a, 1361  ret i64 %c362}363 364define i16 @and_imm16_i16(i16 %a) {365; SDAG-X86-LABEL: and_imm16_i16:366; SDAG-X86:       # %bb.0:367; SDAG-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax368; SDAG-X86-NEXT:    andl $1023, %eax # imm = 0x3FF369; SDAG-X86-NEXT:    # kill: def $ax killed $ax killed $eax370; SDAG-X86-NEXT:    retl371;372; FASTISEL-X86-LABEL: and_imm16_i16:373; FASTISEL-X86:       # %bb.0:374; FASTISEL-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax375; FASTISEL-X86-NEXT:    andw $1023, %ax # imm = 0x3FF376; FASTISEL-X86-NEXT:    retl377;378; GISEL-X86-LABEL: and_imm16_i16:379; GISEL-X86:       # %bb.0:380; GISEL-X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax381; GISEL-X86-NEXT:    andw $1023, %ax # imm = 0x3FF382; GISEL-X86-NEXT:    # kill: def $ax killed $ax killed $eax383; GISEL-X86-NEXT:    retl384;385; SDAG-X64-LABEL: and_imm16_i16:386; SDAG-X64:       # %bb.0:387; SDAG-X64-NEXT:    movl %edi, %eax388; SDAG-X64-NEXT:    andl $1023, %eax # imm = 0x3FF389; SDAG-X64-NEXT:    # kill: def $ax killed $ax killed $eax390; SDAG-X64-NEXT:    retq391;392; FASTISEL-X64-LABEL: and_imm16_i16:393; FASTISEL-X64:       # %bb.0:394; FASTISEL-X64-NEXT:    movl %edi, %eax395; FASTISEL-X64-NEXT:    andw $1023, %ax # imm = 0x3FF396; FASTISEL-X64-NEXT:    # kill: def $ax killed $ax killed $eax397; FASTISEL-X64-NEXT:    retq398;399; GISEL-X64-LABEL: and_imm16_i16:400; GISEL-X64:       # %bb.0:401; GISEL-X64-NEXT:    movl %edi, %eax402; GISEL-X64-NEXT:    andw $1023, %ax # imm = 0x3FF403; GISEL-X64-NEXT:    # kill: def $ax killed $ax killed $eax404; GISEL-X64-NEXT:    retq405  %c = and i16 %a, 1023406  ret i16 %c407}408 409define i32 @and_imm16_i32(i32 %a) {410; SDAG-X86-LABEL: and_imm16_i32:411; SDAG-X86:       # %bb.0:412; SDAG-X86-NEXT:    movl $2044, %eax # imm = 0x7FC413; SDAG-X86-NEXT:    andl {{[0-9]+}}(%esp), %eax414; SDAG-X86-NEXT:    retl415;416; FASTISEL-X86-LABEL: and_imm16_i32:417; FASTISEL-X86:       # %bb.0:418; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax419; FASTISEL-X86-NEXT:    andl $2044, %eax # imm = 0x7FC420; FASTISEL-X86-NEXT:    retl421;422; GISEL-X86-LABEL: and_imm16_i32:423; GISEL-X86:       # %bb.0:424; GISEL-X86-NEXT:    movl $2044, %eax # imm = 0x7FC425; GISEL-X86-NEXT:    andl {{[0-9]+}}(%esp), %eax426; GISEL-X86-NEXT:    retl427;428; X64-LABEL: and_imm16_i32:429; X64:       # %bb.0:430; X64-NEXT:    movl %edi, %eax431; X64-NEXT:    andl $2044, %eax # imm = 0x7FC432; X64-NEXT:    retq433  %c = and i32 %a, 2044434  ret i32 %c435}436 437define i64 @and_imm16_i64(i64 %a) {438; SDAG-X86-LABEL: and_imm16_i64:439; SDAG-X86:       # %bb.0:440; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx441; SDAG-X86-NEXT:    movl $-5022, %eax # imm = 0xEC62442; SDAG-X86-NEXT:    andl {{[0-9]+}}(%esp), %eax443; SDAG-X86-NEXT:    retl444;445; FASTISEL-X86-LABEL: and_imm16_i64:446; FASTISEL-X86:       # %bb.0:447; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx448; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax449; FASTISEL-X86-NEXT:    andl $-5022, %eax # imm = 0xEC62450; FASTISEL-X86-NEXT:    retl451;452; GISEL-X86-LABEL: and_imm16_i64:453; GISEL-X86:       # %bb.0:454; GISEL-X86-NEXT:    movl $-5022, %eax # imm = 0xEC62455; GISEL-X86-NEXT:    movl $-1, %edx456; GISEL-X86-NEXT:    andl {{[0-9]+}}(%esp), %eax457; GISEL-X86-NEXT:    andl {{[0-9]+}}(%esp), %edx458; GISEL-X86-NEXT:    retl459;460; X64-LABEL: and_imm16_i64:461; X64:       # %bb.0:462; X64-NEXT:    movq %rdi, %rax463; X64-NEXT:    andq $-5022, %rax # imm = 0xEC62464; X64-NEXT:    retq465  %c = and i64 %a, -5022466  ret i64 %c467}468 469define i32 @and_imm32_i32(i32 %a) {470; SDAG-X86-LABEL: and_imm32_i32:471; SDAG-X86:       # %bb.0:472; SDAG-X86-NEXT:    movl $85538, %eax # imm = 0x14E22473; SDAG-X86-NEXT:    andl {{[0-9]+}}(%esp), %eax474; SDAG-X86-NEXT:    retl475;476; FASTISEL-X86-LABEL: and_imm32_i32:477; FASTISEL-X86:       # %bb.0:478; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax479; FASTISEL-X86-NEXT:    andl $85538, %eax # imm = 0x14E22480; FASTISEL-X86-NEXT:    retl481;482; GISEL-X86-LABEL: and_imm32_i32:483; GISEL-X86:       # %bb.0:484; GISEL-X86-NEXT:    movl $85538, %eax # imm = 0x14E22485; GISEL-X86-NEXT:    andl {{[0-9]+}}(%esp), %eax486; GISEL-X86-NEXT:    retl487;488; X64-LABEL: and_imm32_i32:489; X64:       # %bb.0:490; X64-NEXT:    movl %edi, %eax491; X64-NEXT:    andl $85538, %eax # imm = 0x14E22492; X64-NEXT:    retq493  %c = and i32 %a, 85538494  ret i32 %c495}496 497define i64 @and_imm32_i64(i64 %a) {498; SDAG-X86-LABEL: and_imm32_i64:499; SDAG-X86:       # %bb.0:500; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx501; SDAG-X86-NEXT:    movl $-125778, %eax # imm = 0xFFFE14AE502; SDAG-X86-NEXT:    andl {{[0-9]+}}(%esp), %eax503; SDAG-X86-NEXT:    retl504;505; FASTISEL-X86-LABEL: and_imm32_i64:506; FASTISEL-X86:       # %bb.0:507; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx508; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax509; FASTISEL-X86-NEXT:    andl $-125778, %eax # imm = 0xFFFE14AE510; FASTISEL-X86-NEXT:    retl511;512; GISEL-X86-LABEL: and_imm32_i64:513; GISEL-X86:       # %bb.0:514; GISEL-X86-NEXT:    movl $-125778, %eax # imm = 0xFFFE14AE515; GISEL-X86-NEXT:    movl $-1, %edx516; GISEL-X86-NEXT:    andl {{[0-9]+}}(%esp), %eax517; GISEL-X86-NEXT:    andl {{[0-9]+}}(%esp), %edx518; GISEL-X86-NEXT:    retl519;520; X64-LABEL: and_imm32_i64:521; X64:       # %bb.0:522; X64-NEXT:    movq %rdi, %rax523; X64-NEXT:    andq $-125778, %rax # imm = 0xFFFE14AE524; X64-NEXT:    retq525  %c = and i64 %a, -125778526  ret i64 %c527}528 529define i64 @and_imm64_i64(i64 %a) {530; SDAG-X86-LABEL: and_imm64_i64:531; SDAG-X86:       # %bb.0:532; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx533; SDAG-X86-NEXT:    movl $-1850691612, %eax # imm = 0x91B0AFE4534; SDAG-X86-NEXT:    andl {{[0-9]+}}(%esp), %eax535; SDAG-X86-NEXT:    andl $-2, %edx536; SDAG-X86-NEXT:    retl537;538; FASTISEL-X86-LABEL: and_imm64_i64:539; FASTISEL-X86:       # %bb.0:540; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %edx541; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax542; FASTISEL-X86-NEXT:    andl $-1850691612, %eax # imm = 0x91B0AFE4543; FASTISEL-X86-NEXT:    andl $-2, %edx544; FASTISEL-X86-NEXT:    retl545;546; GISEL-X86-LABEL: and_imm64_i64:547; GISEL-X86:       # %bb.0:548; GISEL-X86-NEXT:    movl $-1850691612, %eax # imm = 0x91B0AFE4549; GISEL-X86-NEXT:    movl $-2, %edx550; GISEL-X86-NEXT:    andl {{[0-9]+}}(%esp), %eax551; GISEL-X86-NEXT:    andl {{[0-9]+}}(%esp), %edx552; GISEL-X86-NEXT:    retl553;554; X64-LABEL: and_imm64_i64:555; X64:       # %bb.0:556; X64-NEXT:    movabsq $-6145658908, %rax # imm = 0xFFFFFFFE91B0AFE4557; X64-NEXT:    andq %rdi, %rax558; X64-NEXT:    retq559  %c = and i64 %a, -6145658908560  ret i64 %c561}562