[ARM64] Fix the cost model for cheap large constants.
[oota-llvm.git] / test / Transforms / ConstantHoisting / ARM64 / large-immediate.ll
index 0965a45ea6ed278215c0c86b0d20a99124b998c1..92ad6ee70de78374dcf3626c73fde76013827f77 100644 (file)
@@ -8,3 +8,11 @@ define i128 @test1(i128 %a) nounwind {
   ret i128 %2
 }
 
+; Check that we don't hoist large, but cheap constants
+define i512 @test2(i512 %a) nounwind {
+; CHECK-LABEL: test2
+; CHECK-NOT: %const = bitcast i512 7 to i512
+  %1 = and i512 %a, 7
+  %2 = or i512 %1, 7
+  ret i512 %2
+}