brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.4 KiB · 021a709 Raw
123 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -global-isel \3; RUN:     -verify-machineinstrs -stop-after=irtranslator < %s | FileCheck %s4 5; Passing ppc_fp128 in registers (in fp registers as f64)6define void @test_ppc_fp128_1(ppc_fp128 %a, ppc_fp128 %b, ppc_fp128 %c, ppc_fp128 %d, ppc_fp128 %e) {7  ; CHECK-LABEL: name: test_ppc_fp128_18  ; CHECK: bb.1.entry:9  ; CHECK-NEXT:   liveins: $f1, $f2, $f3, $f4, $f5, $f6, $f7, $f8, $f9, $f1010  ; CHECK-NEXT: {{  $}}11  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s64) = COPY $f212  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $f113  ; CHECK-NEXT:   [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY]](s64), [[COPY1]](s64)14  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s64) = COPY $f415  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s64) = COPY $f316  ; CHECK-NEXT:   [[MV1:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY2]](s64), [[COPY3]](s64)17  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:_(s64) = COPY $f618  ; CHECK-NEXT:   [[COPY5:%[0-9]+]]:_(s64) = COPY $f519  ; CHECK-NEXT:   [[MV2:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY4]](s64), [[COPY5]](s64)20  ; CHECK-NEXT:   [[COPY6:%[0-9]+]]:_(s64) = COPY $f821  ; CHECK-NEXT:   [[COPY7:%[0-9]+]]:_(s64) = COPY $f722  ; CHECK-NEXT:   [[MV3:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY6]](s64), [[COPY7]](s64)23  ; CHECK-NEXT:   [[COPY8:%[0-9]+]]:_(s64) = COPY $f1024  ; CHECK-NEXT:   [[COPY9:%[0-9]+]]:_(s64) = COPY $f925  ; CHECK-NEXT:   [[MV4:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY8]](s64), [[COPY9]](s64)26  ; CHECK-NEXT:   BLR8 implicit $lr8, implicit $rm27entry:28  ret void29}30 31define void @test_ppc_fp128_2(i32 %a, i32 %b, ppc_fp128 %c, i32 %d) {32  ; CHECK-LABEL: name: test_ppc_fp128_233  ; CHECK: bb.1.entry:34  ; CHECK-NEXT:   liveins: $f1, $f2, $x3, $x4, $x735  ; CHECK-NEXT: {{  $}}36  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s64) = COPY $x337  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)38  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $x439  ; CHECK-NEXT:   [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)40  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s64) = COPY $f241  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s64) = COPY $f142  ; CHECK-NEXT:   [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY2]](s64), [[COPY3]](s64)43  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:_(s64) = COPY $x744  ; CHECK-NEXT:   [[TRUNC2:%[0-9]+]]:_(s32) = G_TRUNC [[COPY4]](s64)45  ; CHECK-NEXT:   BLR8 implicit $lr8, implicit $rm46entry:47  ret void48}49 50define void @test_ppc_fp128_3(ppc_fp128 %a, i32 %b, ppc_fp128 %c, i32 %d, i32 %e) {51  ; CHECK-LABEL: name: test_ppc_fp128_352  ; CHECK: bb.1.entry:53  ; CHECK-NEXT:   liveins: $f1, $f2, $f3, $f4, $x5, $x8, $x954  ; CHECK-NEXT: {{  $}}55  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s64) = COPY $f256  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $f157  ; CHECK-NEXT:   [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY]](s64), [[COPY1]](s64)58  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s64) = COPY $x559  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY2]](s64)60  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s64) = COPY $f461  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:_(s64) = COPY $f362  ; CHECK-NEXT:   [[MV1:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[COPY3]](s64), [[COPY4]](s64)63  ; CHECK-NEXT:   [[COPY5:%[0-9]+]]:_(s64) = COPY $x864  ; CHECK-NEXT:   [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY5]](s64)65  ; CHECK-NEXT:   [[COPY6:%[0-9]+]]:_(s64) = COPY $x966  ; CHECK-NEXT:   [[TRUNC2:%[0-9]+]]:_(s32) = G_TRUNC [[COPY6]](s64)67  ; CHECK-NEXT:   BLR8 implicit $lr8, implicit $rm68entry:69  ret void70}71 72; Passing fp128 in registers (in vector registers)73define void @test_fp128_1(fp128 %a, fp128 %b, fp128 %c, fp128 %d, fp128 %e) {74  ; CHECK-LABEL: name: test_fp128_175  ; CHECK: bb.1.entry:76  ; CHECK-NEXT:   liveins: $v2, $v3, $v4, $v5, $v677  ; CHECK-NEXT: {{  $}}78  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s128) = COPY $v279  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s128) = COPY $v380  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s128) = COPY $v481  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s128) = COPY $v582  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:_(s128) = COPY $v683  ; CHECK-NEXT:   BLR8 implicit $lr8, implicit $rm84entry:85  ret void86}87 88define void @test_fp128_2(i32 %a, i32 %b, fp128 %c, i32 %d) {89  ; CHECK-LABEL: name: test_fp128_290  ; CHECK: bb.1.entry:91  ; CHECK-NEXT:   liveins: $v2, $x3, $x4, $x792  ; CHECK-NEXT: {{  $}}93  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s64) = COPY $x394  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)95  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $x496  ; CHECK-NEXT:   [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)97  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s128) = COPY $v298  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s64) = COPY $x799  ; CHECK-NEXT:   [[TRUNC2:%[0-9]+]]:_(s32) = G_TRUNC [[COPY3]](s64)100  ; CHECK-NEXT:   BLR8 implicit $lr8, implicit $rm101entry:102  ret void103}104 105define void @test_fp128_3(fp128 %a, i32 %b, fp128 %c, i32 %d, i32 %e) {106  ; CHECK-LABEL: name: test_fp128_3107  ; CHECK: bb.1.entry:108  ; CHECK-NEXT:   liveins: $v2, $v3, $x5, $x9, $x10109  ; CHECK-NEXT: {{  $}}110  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s128) = COPY $v2111  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s64) = COPY $x5112  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)113  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s128) = COPY $v3114  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s64) = COPY $x9115  ; CHECK-NEXT:   [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY3]](s64)116  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:_(s64) = COPY $x10117  ; CHECK-NEXT:   [[TRUNC2:%[0-9]+]]:_(s32) = G_TRUNC [[COPY4]](s64)118  ; CHECK-NEXT:   BLR8 implicit $lr8, implicit $rm119entry:120  ret void121}122 123