brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · ae25eea Raw
80 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=x86_64-linux-gnu    -global-isel -verify-machineinstrs -global-isel-abort=2 < %s -o - | FileCheck %s --check-prefix=X643 4; TODO merge with ext.ll after i64 sext supported on 32bit platform5 6define i64 @test_zext_i1(i8 %a) {7; X64-LABEL: test_zext_i1:8; X64:       # %bb.0:9; X64-NEXT:    movl %edi, %eax10; X64-NEXT:    andq $1, %rax11; X64-NEXT:    retq12  %val = trunc i8 %a to i113  %r = zext i1 %val to i6414  ret i64 %r15}16 17define i64 @test_sext_i8(i8 %val) {18; X64-LABEL: test_sext_i8:19; X64:       # %bb.0:20; X64-NEXT:    movl %edi, %eax21; X64-NEXT:    shlq $56, %rax22; X64-NEXT:    sarq $56, %rax23; X64-NEXT:    retq24  %r = sext i8 %val to i6425  ret i64 %r26}27 28define i64 @test_sext_i16(i16 %val) {29; X64-LABEL: test_sext_i16:30; X64:       # %bb.0:31; X64-NEXT:    movl %edi, %eax32; X64-NEXT:    shlq $48, %rax33; X64-NEXT:    sarq $48, %rax34; X64-NEXT:    retq35  %r = sext i16 %val to i6436  ret i64 %r37}38 39define i64 @test_sext_i32(i32 %val) {40; X64-LABEL: test_sext_i32:41; X64:       # %bb.0:42; X64-NEXT:    movslq %edi, %rax43; X64-NEXT:    retq44  %r = sext i32 %val to i6445  ret i64 %r46}47 48define i64 @test_zext_i8_to_i64(i8 %x, i8 %y) {49; X64-LABEL: test_zext_i8_to_i64:50; X64:       # %bb.0:51; X64-NEXT:    addb %dil, %sil52; X64-NEXT:    movzbl %sil, %eax53; X64-NEXT:    retq54  %a = add i8 %x, %y55  %b = zext i8 %a to i6456  ret i64 %b57}58 59define i64 @test_zext_i16_to_i64(i16 %x, i16 %y) {60; X64-LABEL: test_zext_i16_to_i64:61; X64:       # %bb.0:62; X64-NEXT:    addw %di, %si63; X64-NEXT:    movzwl %si, %eax64; X64-NEXT:    retq65  %a = add i16 %x, %y66  %b = zext i16 %a to i6467  ret i64 %b68}69 70define i64 @test_zext_i32_to_i64(i32 %x, i32 %y) {71; X64-LABEL: test_zext_i32_to_i64:72; X64:       # %bb.0:73; X64-NEXT:    addl %edi, %esi74; X64-NEXT:    movl %esi, %eax75; X64-NEXT:    retq76  %a = add i32 %x, %y77  %b = zext i32 %a to i6478  ret i64 %b79}80