brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · 7bd8a00 Raw
66 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s -O0 -march=nvptx64 -mcpu=sm_20 | FileCheck %s3 4define [2 x i128] @foo(i64 %a, i32 %b) {5; CHECK-LABEL: foo(6; CHECK:       {7; CHECK-NEXT:    .reg .b32 %r<2>;8; CHECK-NEXT:    .reg .b64 %rd<5>;9; CHECK-EMPTY:10; CHECK-NEXT:  // %bb.0:11; CHECK-NEXT:    ld.param.b32 %r1, [foo_param_1];12; CHECK-NEXT:    ld.param.b64 %rd1, [foo_param_0];13; CHECK-NEXT:    shr.s64 %rd2, %rd1, 63;14; CHECK-NEXT:    cvt.s64.s32 %rd3, %r1;15; CHECK-NEXT:    shr.s64 %rd4, %rd3, 63;16; CHECK-NEXT:    st.param.v2.b64 [func_retval0], {%rd1, %rd2};17; CHECK-NEXT:    st.param.v2.b64 [func_retval0+16], {%rd3, %rd4};18; CHECK-NEXT:    ret;19  %1 = sext i64 %a to i12820  %2 = sext i32 %b to i12821  %3 = insertvalue [2 x i128] undef, i128 %1, 022  %4 = insertvalue [2 x i128] %3, i128 %2, 123 24  ret [2 x i128] %425}26 27define [2 x i128] @foo2(ptr byval([2 x i128]) %a) {28; CHECK-LABEL: foo2(29; CHECK:       {30; CHECK-NEXT:    .reg .b64 %rd<5>;31; CHECK-EMPTY:32; CHECK-NEXT:  // %bb.0:33; CHECK-NEXT:    ld.param.v2.b64 {%rd1, %rd2}, [foo2_param_0];34; CHECK-NEXT:    ld.param.v2.b64 {%rd3, %rd4}, [foo2_param_0+16];35; CHECK-NEXT:    st.param.v2.b64 [func_retval0], {%rd1, %rd2};36; CHECK-NEXT:    st.param.v2.b64 [func_retval0+16], {%rd3, %rd4};37; CHECK-NEXT:    ret;38  %ptr0 = getelementptr [2 x i128], ptr %a, i64 0, i32 039  %1 = load i128, i128* %ptr040  %ptr1 = getelementptr [2 x i128], ptr %a, i64 0, i32 141  %2 = load i128, i128* %ptr142  %3 = insertvalue [2 x i128] undef, i128 %1, 043  %4 = insertvalue [2 x i128] %3, i128 %2, 144 45  ret [2 x i128] %446}47 48define [2 x i128] @foo3([2 x i128] %a) {49; CHECK-LABEL: foo3(50; CHECK:       {51; CHECK-NEXT:    .reg .b64 %rd<5>;52; CHECK-EMPTY:53; CHECK-NEXT:  // %bb.0:54; CHECK-NEXT:    ld.param.v2.b64 {%rd3, %rd4}, [foo3_param_0+16];55; CHECK-NEXT:    ld.param.v2.b64 {%rd1, %rd2}, [foo3_param_0];56; CHECK-NEXT:    st.param.v2.b64 [func_retval0], {%rd1, %rd2};57; CHECK-NEXT:    st.param.v2.b64 [func_retval0+16], {%rd3, %rd4};58; CHECK-NEXT:    ret;59  %1 = extractvalue [2 x i128] %a, 060  %2 = extractvalue [2 x i128] %a, 161  %3 = insertvalue [2 x i128] undef, i128 %1, 062  %4 = insertvalue [2 x i128] %3, i128 %2, 163 64  ret [2 x i128] %465}66