| ; RUN: llvm-ml -m64 -filetype=s %s /Fo - | FileCheck %s |
| |
| .data |
| |
| FOO STRUCT |
| a BYTE ? |
| b BYTE ? |
| c BYTE ? |
| d BYTE ? |
| FOO ENDS |
| |
| BAR STRUCT |
| e WORD ? |
| f WORD ? |
| BAR ENDS |
| |
| var FOO <> |
| |
| .code |
| |
| t1: |
| mov al, var.a |
| mov al, var. b |
| mov al, var .c |
| mov al, var . d |
| |
| ; CHECK-LABEL: t1: |
| ; CHECK: mov al, byte ptr [rip + var] |
| ; CHECK: mov al, byte ptr [rip + var+1] |
| ; CHECK: mov al, byte ptr [rip + var+2] |
| ; CHECK: mov al, byte ptr [rip + var+3] |
| |
| t2: |
| mov eax, FOO.a |
| mov ax, FOO. b |
| mov al, FOO .c |
| mov eax, FOO . d |
| |
| ; CHECK-LABEL: t2: |
| ; CHECK: mov eax, 0 |
| ; CHECK: mov ax, 1 |
| ; CHECK: mov al, 2 |
| ; CHECK: mov eax, 3 |
| |
| t3: |
| mov al, BYTE PTR var[FOO.c] |
| |
| ; CHECK-LABEL: t3: |
| ; CHECK: mov al, byte ptr [rip + var+2] |
| |
| t4: |
| mov ax, var.BAR.f |
| mov ax, var .BAR.f |
| mov ax, var. BAR.f |
| mov ax, var.BAR .f |
| mov ax, var.BAR. f |
| mov ax, var . BAR . f |
| |
| ; CHECK-LABEL: t4: |
| ; CHECK: mov ax, word ptr [rip + var+2] |
| ; CHECK: mov ax, word ptr [rip + var+2] |
| ; CHECK: mov ax, word ptr [rip + var+2] |
| ; CHECK: mov ax, word ptr [rip + var+2] |
| ; CHECK: mov ax, word ptr [rip + var+2] |
| ; CHECK: mov ax, word ptr [rip + var+2] |
| |
| END |