xref: /llvm-project/llvm/test/CodeGen/PowerPC/builtins-ppc-xlcompat-pwr9.ll (revision c8937b6cb9751807de1e69f0f0f70a9a58f8f5dc)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
3; RUN:   -mcpu=pwr9 < %s | FileCheck %s
4; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \
5; RUN:   -mcpu=pwr9 < %s | FileCheck %s
6; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-aix \
7; RUN:   -mcpu=pwr9 < %s | FileCheck %s
8; RUN: llc -verify-machineinstrs -mtriple=powerpc-unknown-aix \
9; RUN:   -mcpu=pwr9 < %s | FileCheck %s --check-prefix=CHECK-32BIT
10
11define dso_local zeroext i32 @extract_exp(double %d) {
12; CHECK-LABEL: extract_exp:
13; CHECK:       # %bb.0: # %entry
14; CHECK-NEXT:    xsxexpdp 3, 1
15; CHECK-NEXT:    clrldi 3, 3, 32
16; CHECK-NEXT:    blr
17;
18; CHECK-32BIT-LABEL: extract_exp:
19; CHECK-32BIT:       # %bb.0: # %entry
20; CHECK-32BIT-NEXT:    xsxexpdp 3, 1
21; CHECK-32BIT-NEXT:    # kill: def $r3 killed $r3 killed $x3
22; CHECK-32BIT-NEXT:    blr
23entry:
24  %0 = tail call i32 @llvm.ppc.extract.exp(double %d)
25  ret i32 %0
26}
27declare i32 @llvm.ppc.extract.exp(double)
28