35 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=i686-- -x86-asm-syntax=intel | FileCheck %s3 4; PR6875 6define i64 @foo(i64 %x, ptr %X) {7; CHECK-LABEL: foo:8; CHECK: # %bb.0:9; CHECK-NEXT: push esi10; CHECK-NEXT: .cfi_def_cfa_offset 811; CHECK-NEXT: .cfi_offset esi, -812; CHECK-NEXT: mov esi, dword ptr [esp + 8]13; CHECK-NEXT: mov edx, dword ptr [esp + 12]14; CHECK-NEXT: mov eax, dword ptr [esp + 16]15; CHECK-NEXT: movzx ecx, byte ptr [eax]16; CHECK-NEXT: mov eax, esi17; CHECK-NEXT: shl eax, cl18; CHECK-NEXT: shld edx, esi, cl19; CHECK-NEXT: test cl, 3220; CHECK-NEXT: je .LBB0_221; CHECK-NEXT: # %bb.1:22; CHECK-NEXT: mov edx, eax23; CHECK-NEXT: xor eax, eax24; CHECK-NEXT: .LBB0_2:25; CHECK-NEXT: pop esi26; CHECK-NEXT: .cfi_def_cfa_offset 427; CHECK-NEXT: ret28 %tmp.1 = load i64, ptr %X ; <i64> [#uses=1]29 %tmp.3 = trunc i64 %tmp.1 to i8 ; <i8> [#uses=1]30 %shift.upgrd.1 = zext i8 %tmp.3 to i64 ; <i64> [#uses=1]31 %tmp.4 = shl i64 %x, %shift.upgrd.1 ; <i64> [#uses=1]32 ret i64 %tmp.433}34 35