[ConstProp] Add test for bitcast to gep fold; NFC
authorNikita Popov <nikita.ppv@gmail.com>
Sat, 29 Feb 2020 17:51:18 +0000 (18:51 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Wed, 4 Mar 2020 17:27:20 +0000 (18:27 +0100)
llvm/test/Transforms/ConstProp/bitcast.ll

index 7b1908b..7b07391 100644 (file)
@@ -71,3 +71,22 @@ define i1 @fcmp_constexpr_one(float %conv) {
   %cmp = fcmp one float bitcast (i32 ptrtoint (i16* @a to i32) to float), bitcast (i32 ptrtoint (i16* @a to i32) to float)
   ret i1 %cmp
 }
+
+%T = type { i8 }
+@G = external global %T
+
+define i8* @bitcast_to_gep() {
+; CHECK-LABEL: @bitcast_to_gep(
+; CHECK-NEXT:    ret i8* getelementptr inbounds (%T, %T* @G, i32 0, i32 0)
+;
+  %p = bitcast %T* @G to i8*
+  ret i8* %p
+}
+
+define i8 addrspace(1)* @addrspacecast_to_gep() {
+; CHECK-LABEL: @addrspacecast_to_gep(
+; CHECK-NEXT:    ret i8 addrspace(1)* addrspacecast (i8* getelementptr inbounds (%T, %T* @G, i32 0, i32 0) to i8 addrspace(1)*)
+;
+  %p = addrspacecast %T* @G to i8 addrspace(1)*
+  ret i8 addrspace(1)* %p
+}