1; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \ 2; RUN: -mcpu=future -enable-ppc-quad-precision -ppc-asm-full-reg-names \ 3; RUN: < %s | FileCheck %s 4 5 define float @FloatConstantPool() { 6; CHECK-LABEL: FloatConstantPool: 7; CHECK: # %bb.0: # %entry 8; CHECK-NEXT: plfs f1, .LCPI0_0@PCREL(0), 1 9entry: 10 ret float 0x380FFFF840000000 11} 12 13 define double @DoubleConstantPool() { 14; CHECK-LABEL: DoubleConstantPool: 15; CHECK: # %bb.0: # %entry 16; CHECK-NEXT: plfd f1, .LCPI1_0@PCREL(0), 1 17entry: 18 ret double 2.225070e-308 19} 20 21 define ppc_fp128 @LongDoubleConstantPool() { 22; CHECK-LABEL: LongDoubleConstantPool: 23; CHECK: # %bb.0: # %entry 24; CHECK-NEXT: plfd f1, .LCPI2_0@PCREL(0), 1 25; CHECK-NEXT: plfd f2, .LCPI2_1@PCREL(0), 1 26entry: 27 ret ppc_fp128 0xM03600000DBA876CC800D16974FD9D27B 28} 29 30 define fp128 @__Float128ConstantPool() { 31; CHECK-LABEL: __Float128ConstantPool: 32; CHECK: # %bb.0: # %entry 33; CHECK-NEXT: plxv vs34, .LCPI3_0@PCREL(0), 1 34entry: 35 ret fp128 0xL00000000000000003C00FFFFC5D02B3A 36} 37 38 define <16 x i8> @VectorCharConstantPool() { 39; CHECK-LABEL: VectorCharConstantPool: 40; CHECK: # %bb.0: # %entry 41; CHECK-NEXT: plxv vs34, .LCPI4_0@PCREL(0), 1 42entry: 43 ret <16 x i8> <i8 -128, i8 -127, i8 -126, i8 -125, i8 -124, i8 -123, i8 -122, i8 -121, i8 -120, i8 -119, i8 -118, i8 -117, i8 -116, i8 -115, i8 -114, i8 -113> 44} 45 46 define <8 x i16> @VectorShortConstantPool() { 47; CHECK-LABEL: VectorShortConstantPool: 48; CHECK: # %bb.0: # %entry 49; CHECK-NEXT: plxv vs34, .LCPI5_0@PCREL(0), 1 50entry: 51 ret <8 x i16> <i16 -32768, i16 -32767, i16 -32766, i16 -32765, i16 -32764, i16 -32763, i16 -32762, i16 -32761> 52} 53 54 define <4 x i32> @VectorIntConstantPool() { 55; CHECK-LABEL: VectorIntConstantPool: 56; CHECK: # %bb.0: # %entry 57; CHECK-NEXT: plxv vs34, .LCPI6_0@PCREL(0), 1 58entry: 59 ret <4 x i32> <i32 -2147483648, i32 -2147483647, i32 -2147483646, i32 -2147483645> 60} 61 62 define <2 x i64> @VectorLongLongConstantPool() { 63; CHECK-LABEL: VectorLongLongConstantPool: 64; CHECK: # %bb.0: # %entry 65; CHECK-NEXT: plxv vs34, .LCPI7_0@PCREL(0), 1 66entry: 67 ret <2 x i64> <i64 -9223372036854775808, i64 -9223372036854775807> 68} 69 70 define <1 x i128> @VectorInt128ConstantPool() { 71; CHECK-LABEL: VectorInt128ConstantPool: 72; CHECK: # %bb.0: # %entry 73; CHECK-NEXT: plxv vs34, .LCPI8_0@PCREL(0), 1 74entry: 75 ret <1 x i128> <i128 -27670116110564327424> 76} 77 78 define <4 x float> @VectorFloatConstantPool() { 79; CHECK-LABEL: VectorFloatConstantPool: 80; CHECK: # %bb.0: # %entry 81; CHECK-NEXT: plxv vs34, .LCPI9_0@PCREL(0), 1 82entry: 83 ret <4 x float> <float 0x380FFFF840000000, float 0x380FFF57C0000000, float 0x3843FFFB20000000, float 0x3843FF96C0000000> 84} 85 86 define <2 x double> @VectorDoubleConstantPool() { 87; CHECK-LABEL: VectorDoubleConstantPool: 88; CHECK: # %bb.0: # %entry 89; CHECK-NEXT: plxv vs34, .LCPI10_0@PCREL(0), 1 90entry: 91 ret <2 x double> <double 2.225070e-308, double 2.225000e-308> 92} 93