brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.2 KiB · c053100 Raw
89 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s3 4%0 = type { %1 }5%1 = type { %2 }6%2 = type { %3 }7%3 = type { %4 }8%4 = type { %5 }9%5 = type { i64, i64, ptr }10%6 = type { %7, [23 x i8] }11%7 = type { i8 }12 13@.str.16 = external dso_local unnamed_addr constant [16 x i8], align 114@.str.17 = external dso_local unnamed_addr constant [12 x i8], align 115@.str.18 = external dso_local unnamed_addr constant [15 x i8], align 116 17declare void @llvm.memcpy.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1) #018 19define void @pr38743(i32 %a0) #1 align 2 {20; CHECK-LABEL: pr38743:21; CHECK:       # %bb.0: # %bb22; CHECK-NEXT:    # kill: def $edi killed $edi def $rdi23; CHECK-NEXT:    decl %edi24; CHECK-NEXT:    jmpq *.LJTI0_0(,%rdi,8)25; CHECK-NEXT:  .LBB0_2: # %bb526; CHECK-NEXT:    movzwl .str.17+8(%rip), %eax27; CHECK-NEXT:    movw %ax, -{{[0-9]+}}(%rsp)28; CHECK-NEXT:    movq .str.17(%rip), %rax29; CHECK-NEXT:    jmp .LBB0_430; CHECK-NEXT:  .LBB0_1: # %bb231; CHECK-NEXT:    movq .str.16+7(%rip), %rax32; CHECK-NEXT:    movq %rax, -{{[0-9]+}}(%rsp)33; CHECK-NEXT:    movq .str.16(%rip), %rax34; CHECK-NEXT:    jmp .LBB0_435; CHECK-NEXT:  .LBB0_3: # %bb836; CHECK-NEXT:    movq .str.18+6(%rip), %rax37; CHECK-NEXT:    movq %rax, -{{[0-9]+}}(%rsp)38; CHECK-NEXT:    movq .str.18(%rip), %rax39; CHECK-NEXT:  .LBB0_4: # %bb1240; CHECK-NEXT:    movq %rax, -{{[0-9]+}}(%rsp)41; CHECK-NEXT:    movq -{{[0-9]+}}(%rsp), %rax42; CHECK-NEXT:    movq %rax, (%rax)43; CHECK-NEXT:    movzbl -{{[0-9]+}}(%rsp), %eax44; CHECK-NEXT:    movq -{{[0-9]+}}(%rsp), %rcx45; CHECK-NEXT:    movzwl -{{[0-9]+}}(%rsp), %edx46; CHECK-NEXT:    movl -{{[0-9]+}}(%rsp), %esi47; CHECK-NEXT:    movzbl -{{[0-9]+}}(%rsp), %edi48; CHECK-NEXT:    movb %al, (%rax)49; CHECK-NEXT:    movq %rcx, 1(%rax)50; CHECK-NEXT:    movw %dx, 9(%rax)51; CHECK-NEXT:    movl %esi, 11(%rax)52; CHECK-NEXT:    movb %dil, 15(%rax)53; CHECK-NEXT:    retq54bb:55  %tmp = alloca %0, align 1656  switch i32 %a0, label %bb11 [57    i32 1, label %bb258    i32 4, label %bb559    i32 2, label %bb560    i32 3, label %bb861  ]62 63bb2:                                              ; preds = %bb64  %tmp4 = getelementptr inbounds %6, ptr %tmp, i64 0, i32 1, i64 065  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %tmp4, ptr align 1 @.str.16, i64 15, i1 false)66  br label %bb1267 68bb5:                                              ; preds = %bb, %bb69  %tmp7 = getelementptr inbounds %6, ptr %tmp, i64 0, i32 1, i64 070  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %tmp7, ptr align 1 @.str.17, i64 10, i1 false)71  br label %bb1272 73bb8:                                              ; preds = %bb74  %tmp10 = getelementptr inbounds %6, ptr %tmp, i64 0, i32 1, i64 075  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %tmp10, ptr align 1 @.str.18, i64 14, i1 false)76  br label %bb1277 78bb11:                                             ; preds = %bb79  unreachable80 81bb12:                                             ; preds = %bb8, %bb5, %bb282  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 undef, ptr nonnull align 16 %tmp, i64 24, i1 false) #283  ret void84}85 86attributes #0 = { argmemonly nounwind }87attributes #1 = { "target-features"="+sse,+sse2,+sse3,+sse4.2" }88attributes #2 = { nounwind }89