[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