[llvm] r333767 - [ConstantFold] Add lit testcase for bitcast problem. NFC
Karl-Johan Karlsson via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 1 08:08:14 PDT 2018
Author: karka
Date: Fri Jun 1 08:08:14 2018
New Revision: 333767
URL: http://llvm.org/viewvc/llvm-project?rev=333767&view=rev
Log:
[ConstantFold] Add lit testcase for bitcast problem. NFC
Added:
llvm/trunk/test/Analysis/ConstantFolding/gep-zeroinit-vector.ll
Added: llvm/trunk/test/Analysis/ConstantFolding/gep-zeroinit-vector.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Analysis/ConstantFolding/gep-zeroinit-vector.ll?rev=333767&view=auto
==============================================================================
--- llvm/trunk/test/Analysis/ConstantFolding/gep-zeroinit-vector.ll (added)
+++ llvm/trunk/test/Analysis/ConstantFolding/gep-zeroinit-vector.ll Fri Jun 1 08:08:14 2018
@@ -0,0 +1,29 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt < %s -constprop -S -o - | FileCheck %s
+
+; Testcase that point out faulty bitcast that cast between different sizes.
+; See "bitcast ([1 x %rec8]* @a to <2 x i16*>)" in checks below
+
+%rec8 = type { i16 }
+ at a = global [1 x %rec8] zeroinitializer
+
+define <2 x i16*> @test_gep() {
+; CHECK-LABEL: @test_gep(
+; CHECK-NEXT: ret <2 x i16*> bitcast ([1 x %rec8]* @a to <2 x i16*>)
+;
+ %A = getelementptr [1 x %rec8], [1 x %rec8]* @a, <2 x i16> zeroinitializer, <2 x i64> zeroinitializer
+ %B = bitcast <2 x %rec8*> %A to <2 x i16*>
+ ret <2 x i16*> %B
+}
+
+; Testcase that verify the cast-of-cast when the outer/second cast is to a
+; vector type.
+
+define <4 x i16> @test_mmx_const() {
+; CHECK-LABEL: @test_mmx_const(
+; CHECK-NEXT: ret <4 x i16> zeroinitializer
+;
+ %A = bitcast <2 x i32> zeroinitializer to x86_mmx
+ %B = bitcast x86_mmx %A to <4 x i16>
+ ret <4 x i16> %B
+}
More information about the llvm-commits
mailing list