brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.2 KiB · 137fe8c Raw
83 lines · plain
1; RUN: llc < %s -mattr=sse22; ModuleID = 'yyy.c'3target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"4target triple = "i686-apple-darwin8"5 6define <1 x i64> @a(<2 x i64> %__A) {7entry:8	%__A_addr = alloca <2 x i64>		; <ptr> [#uses=2]9	%retval = alloca <1 x i64>, align 8		; <ptr> [#uses=3]10	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]11	store <2 x i64> %__A, ptr %__A_addr12	%tmp = load <2 x i64>, ptr %__A_addr, align 16		; <<2 x i64>> [#uses=1]13	%tmp1 = bitcast <2 x i64> %tmp to <2 x i64>		; <<2 x i64>> [#uses=1]14	%tmp2 = extractelement <2 x i64> %tmp1, i32 0		; <i64> [#uses=1]15	%tmp3 = bitcast i64 %tmp2 to <1 x i64>		; <<1 x i64>> [#uses=1]16	store <1 x i64> %tmp3, ptr %retval, align 817	%tmp4 = load <1 x i64>, ptr %retval, align 8		; <<1 x i64>> [#uses=0]18	br label %return19 20return:		; preds = %entry21	%retval5 = load <1 x i64>, ptr %retval		; <<1 x i64>> [#uses=1]22	ret <1 x i64> %retval523}24 25define <1 x i64> @b(<2 x i64> %__A) {26entry:27	%__A_addr = alloca <2 x i64>		; <ptr> [#uses=2]28	%retval = alloca <1 x i64>, align 8		; <ptr> [#uses=3]29	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]30	store <2 x i64> %__A, ptr %__A_addr31	%tmp = load <2 x i64>, ptr %__A_addr, align 16		; <<2 x i64>> [#uses=1]32	%tmp1 = bitcast <2 x i64> %tmp to <2 x i64>		; <<2 x i64>> [#uses=1]33	%tmp2 = extractelement <2 x i64> %tmp1, i32 1		; <i64> [#uses=1]34	%tmp3 = bitcast i64 %tmp2 to <1 x i64>		; <<1 x i64>> [#uses=1]35	store <1 x i64> %tmp3, ptr %retval, align 836	%tmp4 = load <1 x i64>, ptr %retval, align 8		; <<1 x i64>> [#uses=0]37	br label %return38 39return:		; preds = %entry40	%retval5 = load <1 x i64>, ptr %retval		; <<1 x i64>> [#uses=1]41	ret <1 x i64> %retval542}43 44define i64 @c(<2 x i64> %__A) {45entry:46	%__A_addr = alloca <2 x i64>		; <ptr> [#uses=2]47	%retval = alloca i64, align 8		; <ptr> [#uses=2]48	%tmp = alloca i64, align 8		; <ptr> [#uses=2]49	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]50	store <2 x i64> %__A, ptr %__A_addr51	%tmp1 = load <2 x i64>, ptr %__A_addr, align 16		; <<2 x i64>> [#uses=1]52	%tmp2 = bitcast <2 x i64> %tmp1 to <2 x i64>		; <<2 x i64>> [#uses=1]53	%tmp3 = extractelement <2 x i64> %tmp2, i32 0		; <i64> [#uses=1]54	store i64 %tmp3, ptr %tmp, align 855	%tmp4 = load i64, ptr %tmp, align 8		; <i64> [#uses=1]56	store i64 %tmp4, ptr %retval, align 857	br label %return58 59return:		; preds = %entry60	%retval5 = load i64, ptr %retval		; <i64> [#uses=1]61	ret i64 %retval562}63 64define i64 @d(<2 x i64> %__A) {65entry:66	%__A_addr = alloca <2 x i64>		; <ptr> [#uses=2]67	%retval = alloca i64, align 8		; <ptr> [#uses=2]68	%tmp = alloca i64, align 8		; <ptr> [#uses=2]69	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]70	store <2 x i64> %__A, ptr %__A_addr71	%tmp1 = load <2 x i64>, ptr %__A_addr, align 16		; <<2 x i64>> [#uses=1]72	%tmp2 = bitcast <2 x i64> %tmp1 to <2 x i64>		; <<2 x i64>> [#uses=1]73	%tmp3 = extractelement <2 x i64> %tmp2, i32 1		; <i64> [#uses=1]74	store i64 %tmp3, ptr %tmp, align 875	%tmp4 = load i64, ptr %tmp, align 8		; <i64> [#uses=1]76	store i64 %tmp4, ptr %retval, align 877	br label %return78 79return:		; preds = %entry80	%retval5 = load i64, ptr %retval		; <i64> [#uses=1]81	ret i64 %retval582}83