declare i8* @pool_alloc(%struct.alloc_pool_def*)
-declare void @llvm.memset.i64(i8*, i8, i64, i32)
+declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1)
declare void @link_block(%struct.basic_block_def*, %struct.basic_block_def*)
; NOTE: Assertions have been autogenerated by update_test_checks.py
; RUN: llc -mtriple=i386-apple-darwin -mcpu=yonah < %s | FileCheck %s
-declare void @llvm.memset.i32(i8*, i8, i32, i32) nounwind
-
define fastcc void @t1() nounwind {
; CHECK-LABEL: t1:
; CHECK: ## BB#0: ## %entry
declare %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZlsIdLi5ELi6EERSoS0_RK15FixedMatrixBaseIT_XT0_EXT1_EE(%"struct.std::basic_ostream<char,std::char_traits<char> >"*, %"struct.FixedMatrixBase<double,5,6>"*)
-declare void @llvm.memset.i64(i8* nocapture, i8, i64, i32) nounwind
+declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) nounwind
-; RUN: opt < %s -inline -S | not grep "tail call void @llvm.memcpy.i32"
+; RUN: opt < %s -inline -S | not grep "tail call void @llvm.memcpy.p0i8.p0i8.i32"
; PR3550
define internal void @foo(i32* %p, i32* %q) {
ret void
}
-declare void @llvm.memcpy.i32(i8* nocapture, i8* nocapture, i32, i32) nounwind
-
define i32 @main() personality i32 (...)* @__gxx_personality_v0 {
%a = alloca i32 ; <i32*> [#uses=3]
%b = alloca i32 ; <i32*> [#uses=2]
; CHECK: assembly parsed, but does not verify as correct
; PR7316
+; XFAIL: *
+; The test case is buggy, it supposed to check that we reject memcpy with vector
+; pointer arguments. Now we don't reject such memcpy and the test case would
+; fail if it was correct. Because it used the wrong signature for memcpy (the
+; last isVolatile argument was missing) it was rejected by the verifier and
+; didn't fail. Fix the memcpy signature and mark it as an expected failure
+; for now.
+
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:32"
target triple = "x86-unknown-unknown"
@aa = global [32 x i8] zeroinitializer, align 1
%2 = bitcast [16 x i8]* %1 to [0 x i8]*
%3 = getelementptr [16 x i8], [16 x i8]* @bb
%4 = bitcast [16 x i8]* %3 to [0 x i8]*
- call void @llvm.memcpy.i32([0 x i8]* %2, [0 x i8]* %4, i32 16, i32 1)
+ call void @llvm.memcpy.p0a0i8.p0a0i8.i32([0 x i8]* %2, [0 x i8]* %4, i32 16, i32 1, i1 false)
br label %return
return:
ret void
}
-declare void @llvm.memcpy.i32([0 x i8]*, [0 x i8]*, i32, i32) nounwind
+declare void @llvm.memcpy.p0a0i8.p0a0i8.i32([0 x i8]* nocapture, [0 x i8]* nocapture readonly, i32, i32, i1) nounwind