brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · a7f2959 Raw
56 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-- | FileCheck %s3 4define i128 @i64_sext_i128(i64 %a, i64 %b) {5; CHECK-LABEL: i64_sext_i128:6; CHECK:       # %bb.0:7; CHECK-NEXT:    movq %rdi, %rax8; CHECK-NEXT:    imulq %rsi9; CHECK-NEXT:    retq10  %aa = sext i64 %a to i12811  %bb = sext i64 %b to i12812  %cc = mul i128 %aa, %bb13  ret i128 %cc14}15define i128 @i64_zext_i128(i64 %a, i64 %b) {16; CHECK-LABEL: i64_zext_i128:17; CHECK:       # %bb.0:18; CHECK-NEXT:    movq %rdi, %rax19; CHECK-NEXT:    mulq %rsi20; CHECK-NEXT:    retq21  %aa = zext i64 %a to i12822  %bb = zext i64 %b to i12823  %cc = mul i128 %aa, %bb24  ret i128 %cc25}26define i128 @i64_zext_sext_i128(i64 %a, i64 %b) {27; CHECK-LABEL: i64_zext_sext_i128:28; CHECK:       # %bb.0:29; CHECK-NEXT:    movq %rdi, %rax30; CHECK-NEXT:    mulq %rsi31; CHECK-NEXT:    sarq $63, %rsi32; CHECK-NEXT:    imulq %rdi, %rsi33; CHECK-NEXT:    addq %rsi, %rdx34; CHECK-NEXT:    retq35  %aa = zext i64 %a to i12836  %bb = sext i64 %b to i12837  %cc = mul i128 %aa, %bb38  ret i128 %cc39}40 41define i128 @i64_sext_zext_i128(i64 %a, i64 %b) {42; CHECK-LABEL: i64_sext_zext_i128:43; CHECK:       # %bb.0:44; CHECK-NEXT:    movq %rdi, %rax45; CHECK-NEXT:    movq %rdi, %rcx46; CHECK-NEXT:    sarq $63, %rcx47; CHECK-NEXT:    mulq %rsi48; CHECK-NEXT:    imulq %rsi, %rcx49; CHECK-NEXT:    addq %rcx, %rdx50; CHECK-NEXT:    retq51  %aa = sext i64 %a to i12852  %bb = zext i64 %b to i12853  %cc = mul i128 %aa, %bb54  ret i128 %cc55}56