brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 3c5c931 Raw
30 lines · plain
1// RUN: tco --target=x86_64-unknown-linux-gnu %s | FileCheck %s2 3// CHECK-LABEL: define { double, double } @c(<2 x float> %4func.func @c(%x : complex<f32>) -> complex<f64> {5// CHECK: %[[R:.*]] = extractvalue { float, float } %{{.*}}, 06// CHECK: %[[I:.*]] = extractvalue { float, float } %{{.*}}, 17// CHECK: %[[CR:.*]] = fpext float %[[R]] to double8// CHECK: %[[CI:.*]] = fpext float %[[I]] to double9// CHECK: %[[X:.*]] = insertvalue { double, double } undef, double %[[CR]], 010// CHECK: insertvalue { double, double } %[[X]], double %[[CI]], 111  %1 = fir.convert %x : (complex<f32>) -> complex<f64>12  return %1 : complex<f64>13}14 15func.func @convert_to_llvm_pointer(%x : !fir.llvm_ptr<i32>) -> !llvm.ptr {16  %0 = fir.convert %x : (!fir.llvm_ptr<i32>) -> !llvm.ptr17  return %0 : !llvm.ptr18}19// CHECK-LABEL: convert_to_llvm_pointer(20// CHECK-SAME: ptr %[[X:.*]])21// CHECK-NEXT: ret ptr %[[X]]22 23func.func @convert_from_llvm_pointer(%x : !llvm.ptr) -> !fir.llvm_ptr<i32> {24  %0 = fir.convert %x : (!llvm.ptr) -> !fir.llvm_ptr<i32>25  return %0 : !fir.llvm_ptr<i32>26}27// CHECK-LABEL: convert_from_llvm_pointer(28// CHECK-SAME: ptr %[[X:.*]])29// CHECK-NEXT: ret ptr %[[X]]30