blob: e81c76b41f092edb7fab51d5d5d64453df363fd7 [file] [log] [blame] [edit]
; RUN: llc < %s | FileCheck %s
target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32-S128"
target triple = "asmjs-unknown-emscripten"
; CHECK: sp = STACKTOP;
; CHECK: STACKTOP = STACKTOP + 16|0;
; CHECK: $0 = sp;
; CHECK: SIMD_Float32x4_store(HEAPU8, $0, $p);
; CHECK: $1 = (($0) + ($i<<2)|0);
; CHECK: $2 = +HEAPF32[$1>>2];
; CHECK: STACKTOP = sp;return (+$2);
; CHECK: }
define float @ext(<4 x float> %p, i32 %i) {
%f = extractelement <4 x float> %p, i32 %i
ret float %f
}
; CHECK: sp = STACKTOP;
; CHECK: STACKTOP = STACKTOP + 16|0;
; CHECK: $0 = sp;
; CHECK: SIMD_Float32x4_store(HEAPU8, $0, $p);
; CHECK: $1 = (($0) + ($i<<2)|0);
; CHECK: HEAPF32[$1>>2] = $f;
; CHECK: $2 = SIMD_Float32x4_load(HEAPU8, $0);
; CHECK: STACKTOP = sp;return (SIMD_Float32x4_check($2));
; CHECK: }
define <4 x float> @ins(<4 x float> %p, float %f, i32 %i) {
%v = insertelement <4 x float> %p, float %f, i32 %i
ret <4 x float> %v
}