[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / PowerPC / vsx_builtins.ll
blobb386565500f62ad8ca0e233c1451d41c59f2ee09
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -relocation-model=static -verify-machineinstrs -mcpu=pwr9 \
3 ; RUN:     -mtriple=powerpc64le-unknown-linux-gnu \
4 ; RUN:     -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names < %s | FileCheck %s
6 ; Function Attrs: nounwind readnone
7 define <4 x i32> @test1(i8* %a) {
8 ; CHECK-LABEL: test1:
9 ; CHECK:       # %bb.0: # %entry
10 ; CHECK-NEXT:    lxvw4x v2, 0, r3
11 ; CHECK-NEXT:    blr
12   entry:
13     %0 = tail call <4 x i32> @llvm.ppc.vsx.lxvw4x.be(i8* %a)
14       ret <4 x i32> %0
16 ; Function Attrs: nounwind readnone
17 declare <4 x i32> @llvm.ppc.vsx.lxvw4x.be(i8*)
19 ; Function Attrs: nounwind readnone
20 define <2 x double> @test2(i8* %a) {
21 ; CHECK-LABEL: test2:
22 ; CHECK:       # %bb.0: # %entry
23 ; CHECK-NEXT:    lxvd2x v2, 0, r3
24 ; CHECK-NEXT:    blr
25   entry:
26     %0 = tail call <2 x double> @llvm.ppc.vsx.lxvd2x.be(i8* %a)
27       ret <2 x double> %0
29 ; Function Attrs: nounwind readnone
30 declare <2 x double> @llvm.ppc.vsx.lxvd2x.be(i8*)
32 ; Function Attrs: nounwind readnone
33 define void @test3(<4 x i32> %a, i8* %b) {
34 ; CHECK-LABEL: test3:
35 ; CHECK:       # %bb.0: # %entry
36 ; CHECK-NEXT:    stxvw4x v2, 0, r5
37 ; CHECK-NEXT:    blr
38   entry:
39     tail call void @llvm.ppc.vsx.stxvw4x.be(<4 x i32> %a, i8* %b)
40     ret void
42 ; Function Attrs: nounwind readnone
43 declare void @llvm.ppc.vsx.stxvw4x.be(<4 x i32>, i8*)
45 ; Function Attrs: nounwind readnone
46 define void @test4(<2 x double> %a, i8* %b) {
47 ; CHECK-LABEL: test4:
48 ; CHECK:       # %bb.0: # %entry
49 ; CHECK-NEXT:    stxvd2x v2, 0, r5
50 ; CHECK-NEXT:    blr
51   entry:
52     tail call void @llvm.ppc.vsx.stxvd2x.be(<2 x double> %a, i8* %b)
53     ret void
55 ; Function Attrs: nounwind readnone
56 declare void @llvm.ppc.vsx.stxvd2x.be(<2 x double>, i8*)