@@ -92,6 +92,16 @@ TEST(DataLayoutUpgradeTest, ValidDataLayoutUpgrade) {
9292 " e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64" , " mips64el" ),
9393 " e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64" );
9494
95+ // Check that PowerPC64 targets add -i128:128.
96+ EXPECT_EQ (UpgradeDataLayoutString (" e-m:e-i64:64-n32:64" , " powerpc64le-linux" ),
97+ " e-m:e-i64:64-i128:128-n32:64" );
98+ EXPECT_EQ (UpgradeDataLayoutString (
99+ " E-m:e-Fn32-i64:64-n32:64" , " powerpc64-linux" ),
100+ " E-m:e-Fn32-i64:64-i128:128-n32:64" );
101+ EXPECT_EQ (UpgradeDataLayoutString (
102+ " E-m:a-Fi64-i64:64-n32:64" , " powerpc64-ibm-aix" ),
103+ " E-m:a-Fi64-i64:64-i128:128-n32:64" );
104+
95105 // Check that SPIR && SPIRV targets add -G1 if it's not present.
96106 EXPECT_EQ (UpgradeDataLayoutString (" e-p:32:32" , " spir" ), " e-p:32:32-G1" );
97107 EXPECT_EQ (UpgradeDataLayoutString (" e-p:32:32" , " spir64" ), " e-p:32:32-G1" );
@@ -108,8 +118,6 @@ TEST(DataLayoutUpgradeTest, NoDataLayoutUpgrade) {
108118 " -f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
109119 " -n8:16:32:64-S128" ,
110120 " x86_64-unknown-linux-gnu" );
111- std::string DL2 = UpgradeDataLayoutString (" e-m:e-i64:64-n32:64" ,
112- " powerpc64le-unknown-linux-gnu" );
113121 std::string DL3 = UpgradeDataLayoutString (
114122 " e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32" ,
115123 " aarch64--" );
@@ -118,7 +126,6 @@ TEST(DataLayoutUpgradeTest, NoDataLayoutUpgrade) {
118126 " e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-i128:128:128"
119127 " -f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64"
120128 " -f80:128:128-n8:16:32:64-S128" );
121- EXPECT_EQ (DL2, " e-m:e-i64:64-i128:128-n32:64" );
122129 EXPECT_EQ (DL3, " e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:"
123130 " 64-S128-Fn32" );
124131
@@ -153,6 +160,14 @@ TEST(DataLayoutUpgradeTest, NoDataLayoutUpgrade) {
153160 EXPECT_EQ (UpgradeDataLayoutString (" G2" , " spir64" ), " G2" );
154161 EXPECT_EQ (UpgradeDataLayoutString (" G2" , " spirv32" ), " G2" );
155162 EXPECT_EQ (UpgradeDataLayoutString (" G2" , " spirv64" ), " G2" );
163+
164+ // Check that PowerPC32 targets don't add -i128:128.
165+ EXPECT_EQ (UpgradeDataLayoutString (" e-m:e-i64:64-n32" , " powerpcle-linux" ),
166+ " e-m:e-i64:64-n32" );
167+ EXPECT_EQ (UpgradeDataLayoutString (" E-m:e-Fn32-i64:64-n32" , " powerpc-linux" ),
168+ " E-m:e-Fn32-i64:64-n32" );
169+ EXPECT_EQ (UpgradeDataLayoutString (" E-m:a-Fi64-i64:64-n32" , " powerpc-aix" ),
170+ " E-m:a-Fi64-i64:64-n32" );
156171}
157172
158173TEST (DataLayoutUpgradeTest, EmptyDataLayout) {
0 commit comments