Dan Gohman | e8b391e | 2008-04-12 04:36:06 +0000 | [diff] [blame^] | 1 | ; RUN: llvm-as < %s | llc -march=x86 -mtriple=i686-pc-linux-gnu | grep movs | count 3 |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 2 | |
Rafael Espindola | 5d3e762 | 2007-08-27 10:18:20 +0000 | [diff] [blame] | 3 | @A = global [32 x i32] zeroinitializer |
| 4 | @B = global [32 x i32] zeroinitializer |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 5 | |
Rafael Espindola | 5d3e762 | 2007-08-27 10:18:20 +0000 | [diff] [blame] | 6 | declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 7 | |
Rafael Espindola | 5d3e762 | 2007-08-27 10:18:20 +0000 | [diff] [blame] | 8 | define void @main() { |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 9 | ; dword copy |
Rafael Espindola | 5d3e762 | 2007-08-27 10:18:20 +0000 | [diff] [blame] | 10 | call void @llvm.memcpy.i32(i8* bitcast ([32 x i32]* @A to i8*), |
| 11 | i8* bitcast ([32 x i32]* @B to i8*), |
| 12 | i32 128, i32 4 ) |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 13 | |
| 14 | ; word copy |
Rafael Espindola | 5d3e762 | 2007-08-27 10:18:20 +0000 | [diff] [blame] | 15 | call void @llvm.memcpy.i32( i8* bitcast ([32 x i32]* @A to i8*), |
| 16 | i8* bitcast ([32 x i32]* @B to i8*), |
| 17 | i32 128, i32 2 ) |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 18 | |
| 19 | ; byte copy |
Rafael Espindola | 5d3e762 | 2007-08-27 10:18:20 +0000 | [diff] [blame] | 20 | call void @llvm.memcpy.i32( i8* bitcast ([32 x i32]* @A to i8*), |
| 21 | i8* bitcast ([32 x i32]* @B to i8*), |
| 22 | i32 128, i32 1 ) |
| 23 | |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 24 | ret void |
| 25 | } |