brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.5 KiB · e34682a Raw
177 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=core2 | FileCheck %s3 4declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i1) nounwind5declare void @llvm.memset.inline.p0.i64(ptr nocapture, i8, i64, i1) nounwind6 7define void @test1(ptr %a, i8 %value) nounwind {8; CHECK-LABEL: test1:9; CHECK:       # %bb.0:10; CHECK-NEXT:    movzbl %sil, %eax11; CHECK-NEXT:    movabsq $72340172838076673, %rcx # imm = 0x10101010101010112; CHECK-NEXT:    imulq %rax, %rcx13; CHECK-NEXT:    movq %rcx, (%rdi)14; CHECK-NEXT:    retq15  tail call void @llvm.memset.inline.p0.i64(ptr %a, i8 %value, i64 8, i1 0)16  ret void17}18 19define void @regular_memset_calls_external_function(ptr %a, i8 %value) nounwind {20; CHECK-LABEL: regular_memset_calls_external_function:21; CHECK:       # %bb.0:22; CHECK-NEXT:    movl $1024, %edx # imm = 0x40023; CHECK-NEXT:    jmp memset@PLT # TAILCALL24  tail call void @llvm.memset.p0.i64(ptr %a, i8 %value, i64 1024, i1 0)25  ret void26}27 28define void @inlined_set_doesnt_call_external_function(ptr %a, i8 %value) nounwind {29; CHECK-LABEL: inlined_set_doesnt_call_external_function:30; CHECK:       # %bb.0:31; CHECK-NEXT:    movzbl %sil, %ecx32; CHECK-NEXT:    movabsq $72340172838076673, %rax # imm = 0x10101010101010133; CHECK-NEXT:    imulq %rcx, %rax34; CHECK-NEXT:    movq %rax, 1016(%rdi)35; CHECK-NEXT:    movq %rax, 1008(%rdi)36; CHECK-NEXT:    movq %rax, 1000(%rdi)37; CHECK-NEXT:    movq %rax, 992(%rdi)38; CHECK-NEXT:    movq %rax, 984(%rdi)39; CHECK-NEXT:    movq %rax, 976(%rdi)40; CHECK-NEXT:    movq %rax, 968(%rdi)41; CHECK-NEXT:    movq %rax, 960(%rdi)42; CHECK-NEXT:    movq %rax, 952(%rdi)43; CHECK-NEXT:    movq %rax, 944(%rdi)44; CHECK-NEXT:    movq %rax, 936(%rdi)45; CHECK-NEXT:    movq %rax, 928(%rdi)46; CHECK-NEXT:    movq %rax, 920(%rdi)47; CHECK-NEXT:    movq %rax, 912(%rdi)48; CHECK-NEXT:    movq %rax, 904(%rdi)49; CHECK-NEXT:    movq %rax, 896(%rdi)50; CHECK-NEXT:    movq %rax, 888(%rdi)51; CHECK-NEXT:    movq %rax, 880(%rdi)52; CHECK-NEXT:    movq %rax, 872(%rdi)53; CHECK-NEXT:    movq %rax, 864(%rdi)54; CHECK-NEXT:    movq %rax, 856(%rdi)55; CHECK-NEXT:    movq %rax, 848(%rdi)56; CHECK-NEXT:    movq %rax, 840(%rdi)57; CHECK-NEXT:    movq %rax, 832(%rdi)58; CHECK-NEXT:    movq %rax, 824(%rdi)59; CHECK-NEXT:    movq %rax, 816(%rdi)60; CHECK-NEXT:    movq %rax, 808(%rdi)61; CHECK-NEXT:    movq %rax, 800(%rdi)62; CHECK-NEXT:    movq %rax, 792(%rdi)63; CHECK-NEXT:    movq %rax, 784(%rdi)64; CHECK-NEXT:    movq %rax, 776(%rdi)65; CHECK-NEXT:    movq %rax, 768(%rdi)66; CHECK-NEXT:    movq %rax, 760(%rdi)67; CHECK-NEXT:    movq %rax, 752(%rdi)68; CHECK-NEXT:    movq %rax, 744(%rdi)69; CHECK-NEXT:    movq %rax, 736(%rdi)70; CHECK-NEXT:    movq %rax, 728(%rdi)71; CHECK-NEXT:    movq %rax, 720(%rdi)72; CHECK-NEXT:    movq %rax, 712(%rdi)73; CHECK-NEXT:    movq %rax, 704(%rdi)74; CHECK-NEXT:    movq %rax, 696(%rdi)75; CHECK-NEXT:    movq %rax, 688(%rdi)76; CHECK-NEXT:    movq %rax, 680(%rdi)77; CHECK-NEXT:    movq %rax, 672(%rdi)78; CHECK-NEXT:    movq %rax, 664(%rdi)79; CHECK-NEXT:    movq %rax, 656(%rdi)80; CHECK-NEXT:    movq %rax, 648(%rdi)81; CHECK-NEXT:    movq %rax, 640(%rdi)82; CHECK-NEXT:    movq %rax, 632(%rdi)83; CHECK-NEXT:    movq %rax, 624(%rdi)84; CHECK-NEXT:    movq %rax, 616(%rdi)85; CHECK-NEXT:    movq %rax, 608(%rdi)86; CHECK-NEXT:    movq %rax, 600(%rdi)87; CHECK-NEXT:    movq %rax, 592(%rdi)88; CHECK-NEXT:    movq %rax, 584(%rdi)89; CHECK-NEXT:    movq %rax, 576(%rdi)90; CHECK-NEXT:    movq %rax, 568(%rdi)91; CHECK-NEXT:    movq %rax, 560(%rdi)92; CHECK-NEXT:    movq %rax, 552(%rdi)93; CHECK-NEXT:    movq %rax, 544(%rdi)94; CHECK-NEXT:    movq %rax, 536(%rdi)95; CHECK-NEXT:    movq %rax, 528(%rdi)96; CHECK-NEXT:    movq %rax, 520(%rdi)97; CHECK-NEXT:    movq %rax, 512(%rdi)98; CHECK-NEXT:    movq %rax, 504(%rdi)99; CHECK-NEXT:    movq %rax, 496(%rdi)100; CHECK-NEXT:    movq %rax, 488(%rdi)101; CHECK-NEXT:    movq %rax, 480(%rdi)102; CHECK-NEXT:    movq %rax, 472(%rdi)103; CHECK-NEXT:    movq %rax, 464(%rdi)104; CHECK-NEXT:    movq %rax, 456(%rdi)105; CHECK-NEXT:    movq %rax, 448(%rdi)106; CHECK-NEXT:    movq %rax, 440(%rdi)107; CHECK-NEXT:    movq %rax, 432(%rdi)108; CHECK-NEXT:    movq %rax, 424(%rdi)109; CHECK-NEXT:    movq %rax, 416(%rdi)110; CHECK-NEXT:    movq %rax, 408(%rdi)111; CHECK-NEXT:    movq %rax, 400(%rdi)112; CHECK-NEXT:    movq %rax, 392(%rdi)113; CHECK-NEXT:    movq %rax, 384(%rdi)114; CHECK-NEXT:    movq %rax, 376(%rdi)115; CHECK-NEXT:    movq %rax, 368(%rdi)116; CHECK-NEXT:    movq %rax, 360(%rdi)117; CHECK-NEXT:    movq %rax, 352(%rdi)118; CHECK-NEXT:    movq %rax, 344(%rdi)119; CHECK-NEXT:    movq %rax, 336(%rdi)120; CHECK-NEXT:    movq %rax, 328(%rdi)121; CHECK-NEXT:    movq %rax, 320(%rdi)122; CHECK-NEXT:    movq %rax, 312(%rdi)123; CHECK-NEXT:    movq %rax, 304(%rdi)124; CHECK-NEXT:    movq %rax, 296(%rdi)125; CHECK-NEXT:    movq %rax, 288(%rdi)126; CHECK-NEXT:    movq %rax, 280(%rdi)127; CHECK-NEXT:    movq %rax, 272(%rdi)128; CHECK-NEXT:    movq %rax, 264(%rdi)129; CHECK-NEXT:    movq %rax, 256(%rdi)130; CHECK-NEXT:    movq %rax, 248(%rdi)131; CHECK-NEXT:    movq %rax, 240(%rdi)132; CHECK-NEXT:    movq %rax, 232(%rdi)133; CHECK-NEXT:    movq %rax, 224(%rdi)134; CHECK-NEXT:    movq %rax, 216(%rdi)135; CHECK-NEXT:    movq %rax, 208(%rdi)136; CHECK-NEXT:    movq %rax, 200(%rdi)137; CHECK-NEXT:    movq %rax, 192(%rdi)138; CHECK-NEXT:    movq %rax, 184(%rdi)139; CHECK-NEXT:    movq %rax, 176(%rdi)140; CHECK-NEXT:    movq %rax, 168(%rdi)141; CHECK-NEXT:    movq %rax, 160(%rdi)142; CHECK-NEXT:    movq %rax, 152(%rdi)143; CHECK-NEXT:    movq %rax, 144(%rdi)144; CHECK-NEXT:    movq %rax, 136(%rdi)145; CHECK-NEXT:    movq %rax, 128(%rdi)146; CHECK-NEXT:    movq %rax, 120(%rdi)147; CHECK-NEXT:    movq %rax, 112(%rdi)148; CHECK-NEXT:    movq %rax, 104(%rdi)149; CHECK-NEXT:    movq %rax, 96(%rdi)150; CHECK-NEXT:    movq %rax, 88(%rdi)151; CHECK-NEXT:    movq %rax, 80(%rdi)152; CHECK-NEXT:    movq %rax, 72(%rdi)153; CHECK-NEXT:    movq %rax, 64(%rdi)154; CHECK-NEXT:    movq %rax, 56(%rdi)155; CHECK-NEXT:    movq %rax, 48(%rdi)156; CHECK-NEXT:    movq %rax, 40(%rdi)157; CHECK-NEXT:    movq %rax, 32(%rdi)158; CHECK-NEXT:    movq %rax, 24(%rdi)159; CHECK-NEXT:    movq %rax, 16(%rdi)160; CHECK-NEXT:    movq %rax, 8(%rdi)161; CHECK-NEXT:    movq %rax, (%rdi)162; CHECK-NEXT:    retq163  tail call void @llvm.memset.inline.p0.i64(ptr %a, i8 %value, i64 1024, i1 0)164  ret void165}166 167define void @memset_inlined_insize(ptr %a) nounwind minsize {168; CHECK-LABEL: memset_inlined_insize:169; CHECK:       # %bb.0:170; CHECK-NEXT:    movl $1024, %ecx # imm = 0x400171; CHECK-NEXT:    movb $42, %al172; CHECK-NEXT:    rep;stosb %al, %es:(%rdi)173; CHECK-NEXT:    retq174  tail call void @llvm.memset.inline.p0.i64(ptr %a, i8 42, i64 1024, i1 0)175  ret void176}177